我在 Apache 服务器 (CentOS) 上配置多个 SSL 主机时遇到问题。最初我以为问题只在于一个 IP,所以一旦发现这个问题,我就要求我们的服务器提供商添加另一个 IP,他们也这样做了。
但是,我仍然遇到问题。我们希望能够对我们的两个域 domain1.com 和 domain2.com 以及各个子域进行 http 和 https 访问。
我在机器上有证书、密钥、中级证书(针对两个域),这些似乎都没有问题。
情况是,所有 HTTP 站点都正常工作,并且第一个 SSL 域正在工作,但是当我尝试通过 HTTPS 访问第二个域时,我收到安全错误(说证书错误,因为显示域 1 的证书!)。
此外,提供给 domain2 的页面不是正确的 oes(即不是 DocumentRoot 所说的内容!)。看起来好像它默认为所有域/ip 的第一个 ssl 配置。
配置文件:
THis is an excerpt from httpd.conf
####
NameVirtualHost **.**.**.27:80
<VirtualHost **.**.**.27:80>
DocumentRoot /var/www/html/ADDIR
ServerName domain1.com
ErrorDocument 404 /var/www/html/404.html
</VirtualHost>
# # There are other virtualhosts for other ServerNames & DocumentRoots too but they're otherwise identical to above. ###
<Location "/usage">
</Location>
NameVirtualHost **.**.**.41:80
<VirtualHost **.**.**.41:80>
DocumentRoot /var/www/html/SOC
ServerName domain2.com
</VirtualHost>
# # #
This is an excerpt from ssl.conf
<VirtualHost **.**.**.27:443>
DocumentRoot "/var/www/html/ADDIR/"
ServerName domain1.com:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
#certificates
SSLCertificateFile /ssl/server.crt
SSLCertificateKeyFile /ssl/server.key
SSLCACertificateFile /ssl/intermediate.crt
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
<VirtualHost **.**.**.41:443>
SSLEngine On
SSLCertificateFile /ssl/SD/server.crt
SSLCertificateKeyFile /ssl/SD/server.key
SSLCACertificateFile /ssl/SD/intermediate.crt
ServerAdmin [email protected]
ServerName domain2.com
DocumentRoot /var/www/html/SOC/
</VirtualHost>
答案1
仅比较两个 https 虚拟主机的定义,我就看到了差异。
在您的 .27 虚拟主机上,您有
服务器名称 domain1.com:443
SSL协议全部-SSLv2
SSLCipherSuite 全部:!ADH:!导出:!SSLv2:RC4+RSA:+高:+中:+低
在你的 .41 Virtualhost 上,你有
服务器名称 domain2.com
我承认我并不了解所有的 SSL 配置,所以这可能是我所期望的。但是你有一个正常工作(我假设是 .27 主机),而另一个设置不同。