我需要为网站使用专用 IP 和 SSL。我注意到 SSL 适用于 www 或规范名称 - 但不能同时适用于两者。
那么是否意味着专用 IP 只会设置为其中一个?
如果我为 www 设置 SSL,那么当用户手动访问不带 www 的 URL 时,它会显示无效证书 - 我该如何绕过这个问题?htaccess 中的 mod_rewrite ?
如果我需要为子域名使用 SSL,是否需要购买另一个 SSL 证书和专用 IP?
答案1
最好的选择是使用 SSL 提供商,该提供商会将基本域作为免费的主题备用名称包含在您的证书中。GoDaddy、Comodo、DigiCert 和 GlobalSign 等 CA 都这样做:http://www.sslshopper.com/ssl-certificate-comparison.html?ids=17,44,66,37
那么您就不会收到任何错误,但仍然建议重定向到标准名称(带有或不带有 www)。
答案2
SSL 证书有两种类型,一种是通配符证书,另一种是特定于域的证书。大多数人使用后者,因为它比较便宜。
是的,您可以在 htaccess 中创建重定向以转到您需要去的地方。DNS 也可以提供帮助。
如果您需要子域名,请检查通配符 SSL 证书。这是您无需单独购买证书即可获得所有子域名的唯一方法。
答案3
首先回答最后一个问题。
有一种称为通配符 SSL 证书的东西。这意味着证书涵盖所有子域名。例如 *.mydomain.com
如果您购买其中一个,其价格可能要贵 5 到 10 倍,那么您也将解决第一个问题。
如果您坚持使用普通 SSL 证书,我建议您重写为其中一种域类型……带 www 或不带 www。一般来说,您无论如何都应该这样做。决定您喜欢哪种类型(我总是喜欢不带 www),然后创建一个 mod_rewrite 规则,进行 301 重定向(永久重定向)
你可以这样做:
在该域的相关 apache 配置文件中:
ServerAdmin [email protected] ServerName www.example.com ServerAlias example.com
。 。 。
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
答案4
对于反向 DNS 解析为网站主机名没有严格要求。唯一要求是 SSL 证书中的主机名解析为服务于网站的主机的 IP 地址(并且同一 IP 上没有其他 SSL 网站,除非它们都可以使用通配符证书),因为证书是在交换任何 HTTP 协议之前发送的。
我相信 Apache 即使在使用 SSL 时也可以处理主机名协商,因此您可以发送 HTTP 301 Moved Permanently 将用户重定向到规范 URL。
通配符证书。它们明显更贵,但允许多个站点使用同一份证书。