带有 SSL 的 Apache 虚拟主机

带有 SSL 的 Apache 虚拟主机

我有一个具有完全 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 的端口。

相关内容