SSL URL给出了404

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

然后我用Comodo创build了*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

我不知道虚拟主机是否正确,或者为什么我得到了404。有没有人见过这个?

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

非常感谢

如果没有特殊的技巧,HTTPS不支持NameVirtualHosts; 从configuration中删除NameVirtualhost *:443

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

重新启动Apache。

ssl.conf的默认SSL虚拟主机正在做两件事情:

  1. 它可以select哪个证书提交给不支持SNI的客户端。
  2. 它会获取与其他基于名称的虚拟主机上的ServerNameServerAlias不匹配的所有请求。

简单地删除NameVirtualHost命令将无济于事,因为ssl.conf的虚拟主机将接收到端口443的所有请求。相反,请完全禁用该虚拟主机; 你不需要或不需要它。

而且还会有证书不匹配的问题。 您的证书需要覆盖客户正在使用的主机名。

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