我有一个具有完全 root 访问权限的 Web 服务器,它托管 3 个域。它们位于同一 IP 上,并通过运行 apache2 的 VirtualHost 文件进行管理。
我想为其中一个添加 SSL 功能,即能够通过以下方式访问同一网站 https://example.com
我尝试了在线找到的所有方法,但是大多数都导致 apache 根本不提供任何内容。
我很高兴得到有关如何配置我的系统来支持此功能的任何帮助。
谢谢,
通恰伊
答案1
您必须添加到 apache conf
NameVirtualHost x.x.x.x:443
使用你的 IP,然后使用虚拟主机
<VirtualHost x.x.x.x:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/cert.pem
SSLCertificateKeyFile /etc/apache2/ssl/key.pem
SSLCertificateChainFile /etc/apache2/ssl/ca.crt
# ...
</VirtualHost>
答案2
您所要求的是不可能的。SSL 是一个封装 HTTP 会话的单独层,它在 HTTP 会话开始之前发生。此时,Apache 无法确定您尝试通过哪个主机名访问服务器。
您只能使用带有 SSL 的基于 IP 的虚拟主机。
有关详细信息,请参阅本节Apache SSL/TLS 常见问题解答。
编辑: 抱歉,我误读了您的问题。我以为您希望所有域都使用 SSL。但是,如果您查看相同的常见问题解答,您问题的解决方案也在那里。您需要明确指定基于 HTTP 的 NameVirtualHosts 的端口。