首先,这个问题可能与其他问题重叠,但我几乎觉得这是一个关于“如何正确配置它”部分的 Red Hat 问题。
我有几个网站使用同一个 IP 地址,这没什么问题。但是,我想通过 HTTPS 为其中一些网站提供一些保护。在 RedHat 中,ssl.conf 文件在 https.conf 文件中引用,它们似乎可以很好地相互配合。
文档指出,我应该为每个需要的安全网站创建一个 .conf 文件,并将该文件放在 /etc/httpd/conf.d/ 目录中,该目录还包含 ssl.conf 文件。假设所有指令都已正确设置,我是否需要在该目录中的 secureWesite.conf 文件中引用 ssl.conf 文件?
其次,可以选择为 Apache 提供自己的密钥对,但是当每个网站都有自己的密钥对时,该怎么做呢?我对每年支付 500 美元购买通配符证书不感兴趣,那么还有其他选择吗?我刚才提到,我目前只有一个 IP 地址。
感谢您的帮助。
答案1
RedHat 6 支持对同一 IP 地址上的多个虚拟主机使用多个单独的证书。这方面的技术术语是“服务器名称指示“(SNI)您基本上可以为每个站点提供自己的证书,通过SSLCertificateFile
每个虚拟主机配置中的指令进行定义。
或者,您可以使用具有多个主题备用名称的单个 UCC 证书。此证书将列出您托管的所有站点作为备用名称,并将用于每个站点。我认为 SNI 是更“官方”的方式,并且可以更轻松地移动站点、撤销证书等。但使用 UCC/SAN 是完全可行的,甚至可能更便宜。
至于多个配置文件,正如 John 所说,这是一个很好的做法,但不是必需的。它使比较/修改网站比处理单个庞大的配置容易得多。
答案2
ssl.conf
您只需要在主文件中引用该文件一次http.conf
。将每个虚拟主机一个配置文件模型放入其中conf.d
更像是一种“常见做法”,而不是要求。您将遇到的问题是,每个 IP 只能有一个具有非通配符 SSL 证书的站点。您可以使用自签名证书,但这些证书在客户端会有自己的一系列问题需要处理。