Apache 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
?
我尝试从第二个SSL*
定义中删除VirtualHost
条目,但是apache没有启动,并且以下消息在日志中:
[error] Server should be SSL-aware but has no certificate configured
[Hint: SSLCertificateFile] (/etc/apache2/sites-enabled/mydomain:1)
答案 0 :(得分:2)
SSL交换与证书验证将在交换任何HTTP消息之前完成。因此,只有在成功验证证书后才能从mydomain.com到www.mydomain.com进行HTTP重定向。因此,摆弄服务器不会有所帮助,您唯一的选择就是获得包含mydomain.com的证书。