有没有办法让所有虚拟服务器使用相同的 SSL 证书而无需多个 IP?

有没有办法让所有虚拟服务器使用相同的 SSL 证书而无需多个 IP?

有没有办法让 Apache 中的所有虚拟服务器使用相同的 SSL 证书,而无需多个 IP?我知道您可以在一个站点、每个端口和每个 IP 上使用证书,但如果站点位于多个端口上,我可以让它工作吗?

答案1

是的,这是可能的。每个 SSL 证书唯一需要的是一个唯一的套接字(ip:port 组合)。

因此,您有 2 个选择:

  1. 多个套接字(例如 192.168.0.1:443、192:168.0.1:444 等)

  2. 多个子域名,匹配相同的通配符域名。

对于方法 2,您需要一个通配符 SSL 证书。为通配符证书匹配的域设置任意数量的具有唯一子域的虚拟主机,并仅为第一个配置 SSLEngine 设置。其他将默认(或实际上由其插座)使用相同的 SSL 证书终止

答案2

你正在寻找的是服务器名称指示,它是 SSL 的扩展,允许客户端在服务器提供 SSL 证书之前指示它要尝试连接的主机。有关哪些浏览器支持它的信息,请参阅 Wikipedia 页面,它是较新的(2004-2006),但例如 XP 不支持它。

如果这对您不起作用,您可能必须要求用户在 URL 中指定不同的端口,例如https://example.com:444/pagename按照 JudasIscariot1651 的建议,将所有站点的 SSL 站点托管在中央证书的子 URL 下(例如https://secure.example.com/sitename.example.com/pagename)。

答案3

是的,可以。只要单个证书对客户端用于访问服务器的每个名称都有效(通配符证书或多名称证书),它就可以“正常工作”。您可以在任意数量的 IP 地址或端口上使用同一个证书。

相关内容