限制对网站的直接 IP 访问 - SSL

限制对网站的直接 IP 访问 - SSL

我有一个 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,不要使用其他任何方法。另外,除非您确切知道自己在做什么,否则不要混合这两种类型的参数。

编辑:回复第一条评论:添加defaultSSL 虚拟主机。它必须是输出中针对端口 443 列出的第一个虚拟主机,apachectl -S并将 IP 地址添加为ServerNameServerAlias

EDIT2:回应进一步的评论。看来您尚未启用 SSL。虚拟主机中至少需要三个 SSL 指令才能启用 SSL,它们的详细信息如下:http://httpd.apache.org/docs/current/ssl/ssl_howto.html

相关内容