Apache2 通配符证书 www 和非 www 域名麻烦

Apache2 通配符证书 www 和非 www 域名麻烦

我的 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 子句中指定的主机名。

相关内容