我知道您可以使用通配符 SSL 证书在任何子域中提供 SSL,但您如何做到这一点,同时在根域中也使用 SSL(即,当有人https://example.com/
在没有 的情况下键入 时www
)?我是否只安装通配符证书,并安装第二个证书来处理根 :443 请求?我不能使用 mod_rewrite,因为浏览器在警告用户缺少 SSL 之前不会走那么远。
答案1
一个包含“X509v3 主题备用名称”属性中描述的所有域的证书可以完成这项工作。据我所知,大多数现代网络浏览器都支持此功能,但我不确定知名的商业 CA 是否会颁发此类证书。
答案2
许多 CA(包括 Comodo 和 DigiCert)会将基本域名作为免费 SAN 包含在其通配符证书中:http://www.sslshopper.com/ssl-certificate-comparison.html?ids=26,13,45
因此,您可以使用一个通配符证书来保护 domain.com 和 any.domain.com。这样您就不会收到任何错误,但您可能仍想将它们重定向到 www。
答案3
恐怕您需要 2 个证书才能实现此功能。
答案4
我使用 mod_rewrite 来实现这个目的,我重定向请求来自https://domain.com/application/到https://www.domain.com/application/使用以下规则:
RewriteEngine On
# Use correct hostname
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301, L]
因此您只需要一个通配符 SSL 证书。