有没有办法让Apache中的所有虚拟服务器使用相同的SSL证书,而不使用多个IP? 我知道你可以在一个站点,每个端口和每个IP上使用一个证书,但是如果站点在多个端口上,我可以使它工作吗?
是的,这是可能的。 每个SSL证书只需要一个独特的套接字(ip:port组合)。
所以,你有两个select:
多个套接字(例如,192.168.0.1:443,192:168.0.1:444等)
多个子域,匹配相同的通配符域名。
方法2,你需要一个通配符SSL证书。 为通配符证书所匹配的域设置具有唯一子域的任意数量的虚拟主机,并configurationSSLEngine设置为第一个。 其他人将通过(或实际上由他们的套接字 )终止相同的ssl证书
你正在寻找什么叫做服务器名称指示 ( Server Name Indication) ,它是SSL的一个扩展,它允许客户端在SSL证书由服务器提供之前指明它正在尝试连接的主机。 有关浏览器支持哪些信息,请参阅维基百科页面,这是最近的(2004-2006),但是例如XP不支持它。
如果这样做对您不起作用,您可能要么必须要求用户在URL中指定不同的端口,例如由JudasIscariot1651build议的https://example.com:444/pagename,托pipe所有站点下的SSL站点中央证书的子URL(例如https://secure.example.com/sitename.example.com/pagename )。
是的你可以。 如果单个证书对于客户端将用于到达服务器的每个名称(通配符证书或多个名称证书)有效,它将“正常工作”。 您可以在任意数量的IP地址或端口上使用相同的证书。