diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index 60ef2d7..7b66911 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -15,6 +15,7 @@
 use Drupal\Core\Logger\LoggerChannelFactory;
 use Drupal\Core\Site\Settings;
 use Drupal\Core\StringTranslation\Translator\FileTranslation;
+use Drupal\Core\StackMiddleware\ReverseProxyMiddleware;
 use Drupal\Core\Extension\ExtensionDiscovery;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\Url;
@@ -403,6 +404,8 @@ function install_begin_request($class_loader, &$install_state) {
   $kernel->setSitePath($site_path);
   $kernel->boot();
   $container = $kernel->getContainer();
+  // If Drupal is being installed behind a proxy, configure the request.
+  ReverseProxyMiddleware::setSettingsOnRequest($request, Settings::getInstance());
 
   // Register the file translation service.
   if (isset($GLOBALS['config']['locale.settings']['translation']['path'])) {
diff --git a/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php b/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php
index db8019b..514cad3 100644
--- a/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php
+++ b/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php
@@ -47,28 +47,41 @@ public function __construct(HttpKernelInterface $http_kernel, Settings $settings
    */
   public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = TRUE) {
     // Initialize proxy settings.
-    if ($this->settings->get('reverse_proxy', FALSE)) {
-      $ip_header = $this->settings->get('reverse_proxy_header', 'X_FORWARDED_FOR');
+    static::setSettingsOnRequest($request, $this->settings);
+    return $this->httpKernel->handle($request, $type, $catch);
+  }
+
+  /**
+   * Sets reverse proxy settings on Request object.
+   *
+   * @param \Symfony\Component\HttpFoundation\Request $request
+   *   A Request instance.
+   * @param \Drupal\Core\Site\Settings $settings
+   *   The site settings.
+   */
+  public static function setSettingsOnRequest(Request $request, Settings $settings) {
+    // Initialize proxy settings.
+    if ($settings->get('reverse_proxy', FALSE)) {
+      $ip_header = $settings->get('reverse_proxy_header', 'X_FORWARDED_FOR');
       $request::setTrustedHeaderName($request::HEADER_CLIENT_IP, $ip_header);
 
-      $proto_header = $this->settings->get('reverse_proxy_proto_header', 'X_FORWARDED_PROTO');
+      $proto_header = $settings->get('reverse_proxy_proto_header', 'X_FORWARDED_PROTO');
       $request::setTrustedHeaderName($request::HEADER_CLIENT_PROTO, $proto_header);
 
-      $host_header = $this->settings->get('reverse_proxy_host_header', 'X_FORWARDED_HOST');
+      $host_header = $settings->get('reverse_proxy_host_header', 'X_FORWARDED_HOST');
       $request::setTrustedHeaderName($request::HEADER_CLIENT_HOST, $host_header);
 
-      $port_header = $this->settings->get('reverse_proxy_port_header', 'X_FORWARDED_PORT');
+      $port_header = $settings->get('reverse_proxy_port_header', 'X_FORWARDED_PORT');
       $request::setTrustedHeaderName($request::HEADER_CLIENT_PORT, $port_header);
 
-      $forwarded_header = $this->settings->get('reverse_proxy_forwarded_header', 'FORWARDED');
+      $forwarded_header = $settings->get('reverse_proxy_forwarded_header', 'FORWARDED');
       $request::setTrustedHeaderName($request::HEADER_FORWARDED, $forwarded_header);
 
-      $proxies = $this->settings->get('reverse_proxy_addresses', array());
+      $proxies = $settings->get('reverse_proxy_addresses', array());
       if (count($proxies) > 0) {
         $request::setTrustedProxies($proxies);
       }
     }
-    return $this->httpKernel->handle($request, $type, $catch);
   }
 
 }
