我需要重写https://domain.com => https://www.domain.com,因为通配符SSL

喜欢这个话题说我需要重写https://domain.com => https://www.domain.com 。 但我有一个域的通配符SSL设置和根域不匹配* .domain.com,因此浏览器提出了一个错误

domain.com使用无效的安全证书。

该证书仅对* .domain.com有效

这是我目前的虚拟主机configuration

 <VirtualHost 127.0.0.1:443> ServerAdmin [email protected] DocumentRoot /usr/local/app/domain/webapps/www JkMount /* somestuff ServerName domain. com ServerAlias www.domain.com ErrorLog logs/domain.com-error_log CustomLog logs/domain.com-access_log combined Customlog logs/domain.com-deflate_log deflate RewriteEngine on RewriteCond %{HTTP_HOST} ^domain\.com [NC] RewriteRule ^/?(.*) https://www.domain.com/$1 [L,R,NE] SSLEngine on SSLCertificateFile /etc/httpd/conf/ssl.crt/x.domain.com.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/x.domain.com.key </VirtualHost> 

我希望RewriteEngine会在加载SSL之前启动,但不起作用。 这是否可以解决而没有得到一个新的只是根域的证书?

不幸的是,客户端正在与之交谈的名称是由客户端而不是服务器对照证书进行检查的。 就客户而言,它正在与domain.com交谈而不是<something> .domain.com – 它不会意识到正在服务器端进行的任何URL重写。

因此,您需要为其他名称添加额外的证书以避免证书错误。

主机头(通常)不会显示SSL终结SSL连接,所以无论客户端input什么,证书都必须是有效的…您可以将http://domain.com重写为https&#xFF1A://www.domain。虽然(为什么heck做了评论代码删除www。当它使例子成为一个url&#xFF1F;^^)

它看起来像DigiCert SSL Plus将为您做这个。

借助DigiCert创新的主题替代名称,您的DigiCert SSL Plus证书将保护www.example.com和example.com(无论是否使用www!),从而减less浏览器警告的潜在风险。