Apache2错误匹配虚拟主机
我对虚拟主机有点问题 我的配置是:Apache2错误匹配虚拟主机,apache2,virtualhost,Apache2,Virtualhost,我对虚拟主机有点问题 我的配置是: <VirtualHost *:80> ServerName www.site2.com DocumentRoot /var/www/domains/site2.com </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/domains/site1.com ServerName www.site1.c
<VirtualHost *:80>
ServerName www.site2.com
DocumentRoot /var/www/domains/site2.com
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/domains/site1.com
ServerName www.site1.com
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/....
SSLCertificateFile /etc/apache2/ssl/...
SSLCertificateChainFile /etc/apache2/ssl/...
</VirtualHost>
服务器名www.site2.com
DocumentRoot/var/www/domains/site2.com
DocumentRoot/var/www/domains/site1.com
服务器名www.site1.com
斯伦金安
SSLCertificateKeyFile/etc/apache2/ssl/。。。。
SSLCertificateFile/etc/apache2/ssl/。。。
SSLCertificateChainFile/etc/apache2/ssl/。。。
如果在浏览器中输入以下URL:
-正常(将VHost与/var/www/domains/site1.com DocumentRoot匹配)
-正常(将Vhost与/var/www/domains/site2.com DocumentRoot匹配)
但是当我尝试使用https协议()的site2.com时。Apache发现/var/www/domains/site1.com DocumentRoot.的Vhost错误
为什么?
感谢您的帮助。这是因为您只为site1配置了HTTPS,而没有为site2配置HTTPS 您需要复制site1 VirtualHost配置,并将site2的信息应用于该配置,使其看起来与下面的类似:
<VirtualHost *:80>
ServerName www.site2.com
DocumentRoot /var/www/domains/site2.com
</VirtualHost>
<VirtualHost *:443>
ServerName www.site2.com
DocumentRoot /var/www/domains/site2.com
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/....
SSLCertificateFile /etc/apache2/ssl/...
SSLCertificateChainFile /etc/apache2/ssl/...
</VirtualHost>
<VirtualHost *:443>
ServerName www.site1.com
DocumentRoot /var/www/domains/site1.com
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/....
SSLCertificateFile /etc/apache2/ssl/...
SSLCertificateChainFile /etc/apache2/ssl/...
</VirtualHost>
服务器名www.site2.com
DocumentRoot/var/www/domains/site2.com
服务器名www.site2.com
DocumentRoot/var/www/domains/site2.com
斯伦金安
SSLCertificateKeyFile/etc/apache2/ssl/。。。。
SSLCertificateFile/etc/apache2/ssl/。。。
SSLCertificateChainFile/etc/apache2/ssl/。。。
服务器名www.site1.com
DocumentRoot/var/www/domains/site1.com
斯伦金安
SSLCertificateKeyFile/etc/apache2/ssl/。。。。
SSLCertificateFile/etc/apache2/ssl/。。。
SSLCertificateChainFile/etc/apache2/ssl/。。。
我假设您对其他站点有单独的SSL证书,或者只是在测试
您还可能遇到使用HTTPS托管多个域的问题,在您的服务器上只有一个IP地址,您应该按照此处的说明操作:这就是虚拟主机在Apache中的工作方式。首先检查TCP层上IP:端口组合的匹配情况。如果有多个虚拟主机具有“最佳匹配”,则会检查主机名(来自HTTP Host:header) 在您的简单示例中,这意味着端口443上的请求的最佳匹配是单个*:443 vhost。它永远不会查看更差的匹配来找到匹配的主机名