SSL证书(letsencrypt)不能对所有服务器名称正常工作



我正在我的网站上工作 abcd.xyz 并在其上实现了SSL。该网站在chrome上使用ssl运行良好,但在safari和chromium(linux(浏览器中存在证书问题

我已将以下链接重定向到 fhttps://abcd.xyz,它们工作正常

www.abcd.xyz
abcd.xyz
fhttp://www.abcd.xyz
fhttps://abcd.xyz

但以下内容在 Safari 和 Chromium 中不起作用(显示无效的证书问题(

http://abcd.xyz
https://www.abcd.xyz

<VirtualHost *:80>
......
......
     ServerName www.abcd.xyz
RewriteEngine on
RewriteCond %{SERVER_NAME} =abcd.xyz [OR]
RewriteCond %{SERVER_NAME} =www.abcd.xyz [OR] 
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTPS} on
RewriteCond %{SERVER_NAME} =www.abcd.xyz
RewriteRule ^ https://abcd.xyz%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

如果将所有网站打包到同一个 Apache 虚拟主机中,则需要将涉及的所有域名捆绑在同一证书中。我不知道Let's Encrypt是否提供这样的功能,但您的证书仅对zorion.io有效。

最简单的解决方法是创建与您托管的子域一样多的虚拟主机。在每个端口中,在 SSLCertificateFile 指令中指定适当的端口(我可以看到您目前期望在端口 80 上使用 HTTPS,这在技术上是可行的,但感觉完全错误(和正确的证书文件。但请注意,除非您的每个主机都有唯一的 IP/端口组合,否则旧版浏览器(旧 IE 版本和一些早期移动浏览器(可能会遇到问题。

最新更新