将HTTP重定向到HTTPS时,HTTPS在外部客户端上中断

时间:2017-10-12 15:02:38

标签: apache ssl redirect https ssl-certificate

我在Windows Server 2008 R2上使用Apache 2.4。

在服务器本身和所有公司内部客户端上,HTTP工作正常,HTTPS工作正常。从HTTP重定向到HTTPS也可以正常工作。

在公司外部的客户端(即家用机器)上,HTTP工作正常,HTTPS工作正常。但是,从HTTP重定向到HTTPS会被破坏。

出现的错误消息如下: ERR_CERT_AUTHORITY_INVALID

发生此错误时,如果查看证书的详细信息,则表明证书已颁发给“localhost.localdomain”。我没有在我的Apache配置文件中找到该域名。详细信息还说,证书的组织是我们的互联网服务提供商,于2011年5月7日发布,并于2021年3月4日到期。这些证书细节均不属于我们的实际证书。我们的证书由Digicert颁发,并于2019年到期。

当我使用SSL Labs进行诊断时,测试甚至没有完全运行,并显示以下错误消息:

Certificate name mismatch
Try these other domain names (extracted from the certificates):

    localhost.localdomain

这些是我的VirtualHost配置:

<VirtualHost *:80>
ServerName www.example.com:80
ServerAlias example.com:80

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*)$ https://www.example.com/$1 [NE,L,R=301]
</VirtualHost>


<VirtualHost *:443>
ServerName www.example.com:443
ServerAlias example.com:443
SSLEngine on
SSLCertificateFile "C:\https\star_example_com.crt"
SSLCertificateKeyFile "C:\https\star_example.com.key"
SSLCertificateChainFile "C:\https\DigiCertCA.crt"

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^/?(.*)$ https://www.example.com/$1 [NE,L,R=301]
</VirtualHost>

我也尝试使用以下重定向命令重定向,但同样的事情发生了:

Redirect permanent / https://www.example.com/

1 个答案:

答案 0 :(得分:0)

所以,我们想通了。它与HTTPS或重定向无关。

我们有一个网站故障转移服务器,如果检测到我们的主站点处于脱机状态或出现故障,则会启动它。

显然,检测到的故障转移逻辑301/302重定向为失败。故障转移服务器正在提供神秘的证书。

我们必须将故障转移逻辑更改为不再将重定向视为失败。