使用通配符证书进行HTTPS重定向

时间:2014-02-19 14:12:13

标签: apache redirect ssl https virtualhost

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.comhttp://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)

1 个答案:

答案 0 :(得分:2)

SSL交换与证书验证将在交换任何HTTP消息之前完成。因此,只有在成功验证证书后才能从mydomain.com到www.mydomain.com进行HTTP重定向。因此,摆弄服务器不会有所帮助,您唯一的选择就是获得包含mydomain.com的证书。