![是否可以在同一个 Apache 服务器上配置 SSL 和非 SSL 站点?](https://linux22.com/image/1556132/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%90%8C%E4%B8%80%E4%B8%AA%20Apache%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%85%8D%E7%BD%AE%20SSL%20%E5%92%8C%E9%9D%9E%20SSL%20%E7%AB%99%E7%82%B9%EF%BC%9F.png)
假设我在同一个 Apache Web 服务器上运行 domain1.com、domain2.com 和 domain3.com,并且只使用一个公网 IP 地址。domain2.com 网站将实施 SSL 证书,但 domain1.com 和 domain3.com 则不会。
在这种情况下,哪一种可能是配置 Apache 的最佳实践?
答案1
是否可以在同一个 Apache 服务器上配置 SSL 和非 SSL 站点?
是的。
假设我有域名1.com,域名2.com和domain3.com在同一 Apache Web 服务器上运行,仅使用一个公共 IP 地址。该网站域名2.com将实施 SSL 证书,但域名1.com和domain3.com惯于。
这很好。你应该可以安全地域名2.com您唯一的 SSL 主机。
对于非 https 网站,您可以像往常一样配置它们。我可能考虑的唯一“额外”步骤是制作非 HTTPS 版本的域名2.com自动将 HTTP 流量重定向到网站的 HTTPS 版本(假设这是理想的行为)。
如果你有兴趣,以下是基本内容Ubuntu 16.04 Apache2 文档(其中包含有关“HTTPS 配置”下 SSL 的一些次要但相关的说明)以及略微更详细的Ubuntu 17.04 的 SSL 教程。
需要注意的是,上面的链接主要涉及自签名证书。由于您使用的是 Linux,因此您可能希望查看CertBot. Certbot 允许您从以下位置获取有效的公共证书让我们加密并使用一些自动化方法来帮助简化这些证书的管理。
对于 Windows,相关的 SSL 默认配置文件通常是conf\extra\httpd-ssl.conf
。同样,零SSL为 Let's Encrypt 提供了一个很好的命令行工具(尽管它不是自动化的)。