Apache 2.4中的SSL证书错误

我在Apache 2.4 webserver上运行两个网站。 它configuration为NameBaseVhost,都有自己的通配符ssl证书(* .site1.com和* .site2.com)由Godaddy发出。 每件事情都很好。 当我通过它的子域www.site1.com和www.site2.com访问网站时,它工作正常。 Apache有一个重写规则来将httpredirect到https,因此这两个网站都完全redirect。

现在的问题是,当我redirect根域www,为site2.com它给了我错误。

Error code: ssl_error_bad_cert_domain site2.com uses an invalid security certificate. The certificate is only valid for the following names: *.site1.com, site1.com 

Httpd site1.com的configuration

 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R] # Redirect root domain to www RewriteCond %{HTTP_HOST} ^site1\.com$ [NC] RewriteRule ^(.*)$ https://www.site1.com/$1 [R=301,L] <VirtualHost *:443> ServerName www.site1.com DocumentRoot /var/www/html/site1/public/ SSLEngine On SSLCertificateFile /etc/pki/tls/certs/site1/site1.crt SSLCertificateKeyFile /etc/pki/tls/private/site1/site1.key SSLCertificateChainFile /etc/pki/tls/certs/site1/gd_site1.crt Header always set Strict-Transport-Security "max-age=31536000; </VirtualHost> 

site2.com的Httpdconfiguration

 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R] # Redirect root domain to www RewriteCond %{HTTP_HOST} ^site2\.com$ [NC] RewriteRule ^(.*)$ https://www.site2.com/$1 [R=301,L] <VirtualHost *:443> ServerName www.site2.com DocumentRoot /var/www/html/site2/public/ SSLEngine On SSLCertificateFile /etc/pki/tls/certs/site2/site2.crt SSLCertificateKeyFile /etc/pki/tls/private/site2/site2.key SSLCertificateChainFile /etc/pki/tls/certs/site2/gd_site2.crt Header always set Strict-Transport-Security "max-age=31536000; </VirtualHost> 

如何解决这个问题?

问题是在VHost中使用<VirtualHost *:443> 。 使用网站的特定IP地址,否则所有SSLstream量将通过第一个VHost条目进行路由。