带有通配符证书的 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.com
和http://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.com
和mydomain.com
的SAN 条目? (顺便说一句,在您尝试各种配置设置时使用 永久 重定向不一定是个好主意,因为您测试它的浏览器可能会记住它。)
【参考方案1】:
SSL 连接与证书验证将在任何 HTTP 消息交换之前完成。因此,从 mydomain.com 到 www.mydomain.com 的 HTTP 重定向只能在成功验证证书后才能完成。因此,无需摆弄服务器,您唯一的选择就是获取包含 mydomain.com 的证书。
【讨论】:
以上是关于带有通配符证书的 HTTPS 重定向 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
通过 htaccess 将所有 http 和 https 非 www URL 重定向到 https://www.xyz.com