我有一个 CentOS 6 VPS,上面有 5 个站点,并且所有站点都安装了 Let's Encrypt 并正常运行。当我访问https://vps-ip,它始终指向在 vhosts-ssl-letsencrypt.conf 中配置的第一个站点(我已更改配置并将另一个站点放在配置顶部以对其进行测试)。我尝试添加:
<VirtualHost ip:443>
ServerName ip
Redirect 403 /
ErrorDocument 403 "No"
DocumentRoot /usr/local/apache/htdocs
UseCanonicalName Off
UserDir disabled
</VirtualHost>
但无法通过 ssl 访问网站
or <VirtualHost *:443>...
出现此错误:[错误] 服务器应该支持 SSL,但未配置证书 [提示:SSLCertificateFile] ((null):0)
<VirtualHost *>...
不用找了
http://vps-ip指向正确的 vps 欢迎页面。有什么想法吗?
答案1
简单的答案是,*:443
在上述问题中,您尚未为虚拟主机启用 SSL。Apache 不会因为您将虚拟主机放在端口 443 上而突然开始使用 SSL,它需要配置。
此外,这个指令并不是一个可以做任何合理事情的指令:
Redirect 403 /
你不应该使用
<VirtualHost *>
这会导致各种问题。请使用IP:port
或*:port
,不要使用其他任何方法。另外,除非您确切知道自己在做什么,否则不要混合这两种类型的参数。
编辑:回复第一条评论:添加default
SSL 虚拟主机。它必须是输出中针对端口 443 列出的第一个虚拟主机,apachectl -S
并将 IP 地址添加为ServerName
或ServerAlias
EDIT2:回应进一步的评论。看来您尚未启用 SSL。虚拟主机中至少需要三个 SSL 指令才能启用 SSL,它们的详细信息如下:http://httpd.apache.org/docs/current/ssl/ssl_howto.html