我有一个指向域www.domain1.com的专用服务器。 我为我的x1.domain1.com域名购买了SSL证书,价格为10美元,所以我为所有子域名购买了SSL证书,因为通配证书成本太高。
当我重新启动Apache,x1.domain1.com设置为x2.domain1.com上的ssl证书,它显示“不可信的警告”,证书是有效的一些其他域。 我检查了证书本身,它显示了x1.domain1.com的域名,这是x1.domain1.com的证书
我如何获得多个SSL虚拟主机设置?
我的configuration文件是
<VirtualHost *:443> ServerAdmin [email protected] DocumentRoot /var/htm2/ ServerName x1.domain1.com SSLEngine on SSLCertificateFile /usr/server.crt SSLCertificateKeyFile /usr/server.key </VirtualHost> <VirtualHost *:443> ServerAdmin [email protected] DocumentRoot /var/htm/ ServerName x2.domain1.com SSLEngine on SSLCertificateFile /usr/l/server.crt SSLCertificateKeyFile /usr/l/server.key </VirtualHost>
问题是我有一个单一的专用IP:141.XX.XX.X但是当我去https://x1.domain1.com在铬或Firefox最新,证书的作品,但是当我去https:/ /x2.domain1.com 。 它显示一个证书不信任,并表示符合证书的信任,因为这个证书是针对另一个域的,我查看了证书并将其视为x1.domain1.com的证书
我希望这两个网站都可以浏览
https:\\x1.domain1.com https:\\x2.domain1.com
与任何端口或任何东西…我应该改变什么设置在上面的configuration来实现这一点,是什么麻烦导致x2.domain1.com显示证书的x1..domain,也是如何redirect
http:\ x1.domain1.com到https:\ x1.domain1.com与出使用htaccess,如果通过htaccess然后如何?
也如何redirect
目前的互联网浏览器几乎一半都不支持SNI。 所以服务器必须决定发送给客户端的证书只知道客户端连接的端口。 如果你需要服务两个不同的证书,可能你最好的select是使用两个不同的端口。 或者,您可以使用允许您将两个名称放在同一证书中的服务。 (例如,StartSSL允许您将您validation的任何域中的任何主机放入以任何组合方式发布的任何证书中。
您需要将您的虚拟主机绑定到不同的IP地址,或绑定到不同的端口。
问题是,在同一个IP + PORT上不能有两个SSL主机,因为主机名不能被确定,因为它是encryption内容的一部分。 所以它select一个虚拟主机,并提供(典型的第一个虚拟主机) http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
正如David Schwartz所说,你也可以把所有的名字都放在一个单一的证书中。 在x509的说法,这是SubjectAlternateName字段。