我的理解是,在单个IP上拥有多个证书存在问题,因为在HTTP发生之前协商了SSL,但我们可以做的是在TLS中使用服务名称指示(SNI)来解决这个问题。根据SNI维基百科页面,Apache 2模块mod_ssl和mod_gnutls都支持此扩展以及众多Web客户端。
我一直在尝试在centos 5上使用mod_gnutls。我有两个单独的证书用于两个域,但只有1个IP。每个都独立工作,但当我把两个都放入配置时,只有第一个工作。 domain2上的任何https连接都显示domain1的证书。
我的配置如下:
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.domain1.com
ServerAlias www.domain1.com
DocumentRoot /var/www/html/domain1
GnuTLSEnable on
GnuTLSCertificateFile /etc/pki/tls/certs/www.domain1.crt
GnuTLSKeyFile /etc/pki/tls/domain1/private.key
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/html/domain2
ServerName www.domain2.com
ServerAlias www.domain2.com
GnuTLSEnable on
GnuTLSCertificateFile /etc/pki/tls/certs/domain2.crt
GnuTLSKeyFile /etc/pki/tls/domain2/private.key
</VirtualHost>
有什么想法吗?真的一直在摸不着头脑。
非常感谢