为什么我的网站从 https 重定向到 http?

为什么我的网站从 https 重定向到 http?

我目前使用 SSL 创建了一个 Apache 反向代理。在测试期间,我执行了以下操作:

Key in https://10.0.100.100 > browser asks for credentials > I enter credentials > browser goes to http://10.0.100.100 > browser asks for credentials again > I enter credentials again > browser finally shows website, but as http

在我创建 apache 的 CentOS 中,我在目录“/etc/httpd/conf.d/default.conf”下创建了一个名为 default.conf 的文件,其内容如下:

<IfModule mod_proxy.c>

ProxyRequests Off
ProxyPreserveHost On
ProxyReceiveBufferSize 4096

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
ProxyPass / http://intraspace/
ProxyPassReverse / http://intraspace/

#RewriteEngine On
  #RewriteCond %{SERVER_PORT} !443
  #RewriteRule ^(.*)$ https://intraspace/$1 [R,L]

<Location />
Order allow,deny
Allow from all
</Location>

内部空间指的是我的后端服务器(被我的反向代理隐藏的服务器)。我注释了重写规则,因为如果我意识到如果我使用它们,它将显示重定向并显示我的 apache 的本地 ip 地址(当我输入我的 apache 的公共 ip 时)或者当我尝试任何其他 IP 地址(后端服务器 IP 或 apache 的公共 IP)时导致“内部错误”

我该如何解决这个双重认证/重定向的问题,并使我的网站 IP 保持在 https 版本?

答案1

可能是 inraspace 看到的是 http,所以返回的都是 http。如果应用程序处理它,你可以设置

RequestHeader set X-Forwarded-Proto "https"

如果应用程序支持该标头,则在 proxypass 行上方,这将告诉后端 SSL 已终止

相关内容