我的 SSL 出现了一点问题。我有一个由 Digicert 颁发的 CA 签名通配符证书。我已正确安装它,并尝试使用它通过 https 访问我的网站 comp.org 和 www.comp.org。https://www.comp.org工作正常。但是,当我尝试访问https://comp.org直接,我在 Google Chrome 上收到 connection_timed_out 错误。为了验证我的证书确实是通配符,我运行了以下命令:
openssl x509 -in /root/comp.crt -noout -text | grep Subject:
我的结果如下:
Subject: C=US, L=Town, ST=State, O=Comp, Inc., CN=*.comp.org
据我所知,我应该能够使用这个访问 comp.org 和 www.comp.org,对吗?但是,只有 www.comp.org 对我有用。我最好的猜测是,这与我设置虚拟主机的方式有关?目前,我在 default-ssl 中的设置是:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName *.comp.org
DocumentRoot /var/www/
#All the rest of that SSLEngine jazz
需要说明的是,我不想进行非 www 到 www 的重定向。我知道这种方法是一种可行的解决方法,但我想将其作为学习经验,以更好地了解虚拟主机和 SSL 证书的工作原理,因为我对所有这些都不太熟悉。
因此,我希望我的客户能够访问 comp.org 和 www.comp.org。顺便说一句,这两个网站显示的内容相同,因此我不需要在虚拟主机中指定不同的路径或类似的东西。只是想在这里学习。
答案1
据我所知,该证书是正确的。
您应该添加 ServerAlias 行,并更改 ServerName 以明确使用 www.comp.org:
ServerName www.comp.org
ServerAlias comp.org
或相反亦然。
ServerName comp.org
ServerAlias www.comp.org
唯一不同的是日志文件中使用的主机名,它将是 ServerName 子句中指定的主机名。