我有一个Web服务器,它提供不同的域名,但只分配了一个IP地址.这适用于Apache中的虚拟主机.现在我想要网站的SSL加密连接.如何为不同的vhost设置不同的SSL证书?
对不同的主机名使用不同的IP将是一个解决方案 - 不是很优雅,但可能.但我想知道,我如何为不同的虚拟主机使用不同的SSL证书.所以我寻找一个只有一个IP地址的解决方案.
更新:2013年
随着旧版浏览器的逐渐消失,SNI似乎终于开始占据上风.以下是Apache SNI的文档 ,这里有一篇关于SNI的维基百科文章,其中包括支持它的浏览器的图表.简而言之,所有主流浏览器都支持受支持的版本; 如果支持旧浏览器很重要,您可能必须考虑到这一点.
------上一个答案------------
SSL主机必须绑定到唯一的IP地址/端口组合,因此您无法使用虚拟主机(或者至少,每个IP地址只能有一个ssl主机).这是因为https在http:中发送Host:参数之前开始加密,因此无法确定主机名中使用哪个密码 - 它只有IP地址.
如果HTTP有一个TLS命令,这很容易修复,所以它可以在询问主机名后启动SSL,但没有人问我.
有关最终答案,请参阅http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts2