带有通配符证书的 HTTPS 重定向 [关闭]

Posted

技术标签:

【中文标题】带有通配符证书的 HTTPS 重定向 [关闭]【英文标题】:HTTPS redirect with wildcard cerificate [closed] 【发布时间】:2014-03-19 22:22:03 【问题描述】:

阿帕奇 2.2。我有一个*.mydomain.com 的通配符 SSL 证书。我也想直接在mydomain.com 允许安全连接。我找到了一个解决方案,我可以只为我的网站创建地址 www.mydomain.com,而且确实 - 当我输入 www.mydomain.com 时证书正在工作。工作配置:

<VirtualHost *:443>
    ServerName www.mydomain.com

    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/cert.der
    SSLCertificateKeyFile /etc/apache2/key.pem

    // site config, redirects to Apache Tomcat
</VirtualHost>

<VirtualHost *:443>
    ServerName mydomain.com
    Redirect permanent / https://www.mydomain.com

    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/cert.der
    SSLCertificateKeyFile /etc/apache2/key.pem
</VirtualHost>

<VirtualHost *:80>
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    Redirect permanent / https://www.mydomain.com
</VirtualHost>

当我输入http://mydomain.comhttp://www.mydomain.com 时,我按预期重定向到https://www.mydomain.com

但是,当我输入https://mydomain.com 时,浏览器提示证书无效(挂锁为红色)。我必须确认我知道并信任证书(在 chrome 中称为“添加安全例外”),然后 - 我被正确重定向到 https://www.mydomain.com - 并且挂锁是绿色的。

问题是:如何将https://mydomain.com 重定向到https://www.mydomain.com 而不会因证书无效而困扰用户?

我试图从第二个 VirtualHost 定义中删除 SSL* 条目,但随后 apache 没有启动并且日志中出现以下消息:

[error] Server should be SSL-aware but has no certificate configured 
[Hint: SSLCertificateFile] (/etc/apache2/sites-enabled/mydomain:1)

【问题讨论】:

您的证书是否包含*.mydomain.commydomain.com 的SAN 条目? (顺便说一句,在您尝试各种配置设置时使用 永久 重定向不一定是个好主意,因为您测试它的浏览器可能会记住它。) 【参考方案1】:

SSL 连接与证书验证将在任何 HTTP 消息交换之前完成。因此,从 mydomain.com 到 www.mydomain.com 的 HTTP 重定向只能在成功验证证书后才能完成。因此,无需摆弄服务器,您唯一的选择就是获取包含 mydomain.com 的证书。

【讨论】:

以上是关于带有通配符证书的 HTTPS 重定向 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

带有通配符子域的 Apache SSL 重写

带有正则表达式通配符的 WordPress PHP 重定向

htaccess通配符子域重定向与https非www

使用 WordPress 进行通配符域重定向

如何将所有 https 请求重定向到 https

通过 htaccess 将所有 http 和 https 非 www URL 重定向到 https://www.xyz.com