Ssl 如何使用VirtualHost在同一台Apache2服务器上使用不同的证书?
我从Gandi那里获得了域名www.mondomaine.fr的证书 但是对于sql.mondomaine.fr,我希望使用自签名SSL证书 如果我激活了sql.mondomaine.fr,那么www.mondomaine.fr使用的是自签名证书,而不是Gandiś证书 如果我取消激活sql。一切正常 如何管理不同证书的使用 第一个VirtualHost配置是为每个SSL VirtualHost配置的 谢谢你的帮助 以下是我的配置: 对于PHPMyAdmin:Ssl 如何使用VirtualHost在同一台Apache2服务器上使用不同的证书?,ssl,apache2,virtualhost,pem,Ssl,Apache2,Virtualhost,Pem,我从Gandi那里获得了域名www.mondomaine.fr的证书 但是对于sql.mondomaine.fr,我希望使用自签名SSL证书 如果我激活了sql.mondomaine.fr,那么www.mondomaine.fr使用的是自签名证书,而不是Gandiś证书 如果我取消激活sql。一切正常 如何管理不同证书的使用 第一个VirtualHost配置是为每个SSL VirtualHost配置的 谢谢你的帮助 以下是我的配置: 对于PHPMyAdmin: <VirtualHost *
<VirtualHost *:443>
# Chemin vers les données web
DocumentRoot /usr/share/phpmyadmin
ServerName sql.mondomaine.fr
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/phpmyadmin.pem
</VirtualHost>
#Chemin vers les données网站
DocumentRoot/usr/share/phpmyadmin
ServerName sql.mondomaine.fr
斯伦金安
SSLCertificateFile/etc/apache2/ssl/phpmyadmin.pem
对于mondomaine.fr
<VirtualHost *:443>
ServerName www.mondomaine.fr
DocumentRoot /var/www/mondomaine/
CustomLog /var/log/apache2/secure_access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/mondomaine.fr.crt
SSLCertificateKeyFile /etc/ssl/mondomaine.fr.key
SSLCACertificateFile /etc/ssl/GandiStandardSSLCA.pem
SSLVerifyClient None
</VirtualHost>
服务器名www.mondomaine.fr
DocumentRoot/var/www/mondomaine/
CustomLog/var/log/apache2/secure\u access.log组合
斯伦金安
SSLCertificateFile/etc/ssl/mondomaine.fr.crt
SSLCertificateKeyFile/etc/ssl/mondomaine.fr.key
SSLCACertificateFile/etc/ssl/GandiStandardSSLCA.pem
SSLVERIFYCLENT无
配置是正确的,因为如果第一个VirtualHost读取为PHPMyAdmin.pem ModSSL,则使用此虚拟主机;如果第一个VirtualHost读取为mondomaine.fr.crt,则Apache使用此虚拟主机。这取决于您如何创建证书。如果你只为www子域购买它,那么它对sql就不起作用。 您需要做的是允许任何子域,但是这些证书更昂贵 另一方面,您可以使用自己的Certificate,您只需要确定在创建virtutalhost时要放什么
<virtualhost XXX.XXX.XXX.XXX:443>
serverName www.mondomaine.fr
# Gandiś ceritificate
</virtualhost>
<virtualhost XXX.XXX.XXX.XXX:443>
serverName sql.mondomaine.fr
# your own certificate stuff
</virtualhost>
服务器名www.mondomaine.fr
#甘地证书
serverName sql.mondomaine.fr
#你自己的证书
您遇到了HTTP over SSL的一般性问题-当客户端连接时,它会使用host:HTTP头指定要连接到哪个主机,但这仅在SSL握手(出示证书时)完成后才会出现。TLS的最新版本支持扩展(RFC 4366中指定),该扩展允许客户端指定在SSL握手期间要连接的主机,具体目的是支持VHOST;引用RFC:
“”“
TLS不提供一种机制让客户端告诉服务器
它正在联系的服务器的名称。客户端可能需要该名称
提供此信息以方便与的安全连接
在单个基础上托管多个“虚拟”服务器的服务器
网络地址。
“”“
据维基百科称,Firefox、Opera、IE、Chrome和Safari的最新版本支持此扩展;其他客户仍然不发送分机,而你在那里运气不好。您还必须至少使用TLS1.1来启用扩展支持
关于如何使用Apache设置它,有一些介绍;根据您的本地设置,您可能需要使用特定选项重建OpenSSL和/或Apache。OMG!!这意味着如果你在同一台服务器上有两个网站,你不能为每个网站都有一个文件?是否可以将多个pem文件连接在同一个文件中,以便在ssl握手期间发送所有内容,让浏览器选择其中一个;SSL握手仅支持发送单个证书,而不考虑。然而,SNI扩展允许服务器计算出客户机希望得到哪一个;否则,正如您所注意到的,Apache将始终使用您在配置文件中设置的第一个证书,因为没有SNI,它无法在SSL握手开始时找到它。