SSL URL 给出 404

SSL URL 给出 404

我最近在我的服务器*.key和一个*csr文件上创建了一个 SSL 证书。

然后我用 Comodo 创建了*crt*.ca-bundle

我目前有 2 个虚拟主机:

虚拟主机 -http://www.example.com

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/home/example/public_html/example.com/httpdocs"
    ServerName example.com
    ServerAlias www.example.com
</VirtualHost>

虚拟主机https://www.example.com

NameVirtualHost *:443
<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/example_com.crt
    SSLCertificateKeyFile /etc/ssl/certs/server.key
    <Directory /home/example/public_html/example.com/httpdocs>
    AllowOverride All
    </Directory>
    DocumentRoot /home/example/public_html/example.com/httpdocs
    ServerName example.com
</VirtualHost>

问题是,当我访问时,https://www.example.com出现了 404

我不确定 vhost 是否正确或者为什么会出现 404 错误。有人见过这种情况吗?

我已经启用mod_ssl并重新启动了 apache

非常感谢

答案1

如果没有特殊技巧,HTTPS 不支持 NameVirtualHosts;请NameVirtualhost *:443从配置中删除。

也就是说,ServerName 与证书 CN 不匹配 - 将其更改为 www.example.com。

重新启动 apache。

答案2

默认的 SSL vhost 正在ssl.conf做两件事:

  1. 它可以选择向不支持 SNI 的客户端提供哪个证书。
  2. ServerName它获取所有与ServerAlias另一个基于名称的虚拟主机不匹配的请求。

简单地删除该NameVirtualHost命令不会有帮助,因为虚拟主机ssl.conf将得到每一个请求到端口 443。相反,完全禁用该虚拟主机;您不想要或不需要它。

而且您仍然需要处理证书不匹配的问题;您的证书需要涵盖您的客户正在使用的主机名。

答案3

添加ServerAlias www.example.com到启用 SSL 的虚拟主机。

相关内容