У меня была отличная настройка с моими виртуальными хостами и SSL. Я нашел проблему, мне нужно решение. Проблема в том, что при настройке моих виртуальных хостов и имен серверов директива LAST VirtualHost связывает файл сертификата SSL с ServerName независимо от IP-адреса или ServerAlias.
В этом случае SSL на www.site1.com использует файл сертификата, установленный на последнем VirtualHost; www.site2.com.
Так оно и должно работать? Похоже, это происходит потому, что они оба используют одно и то же имя сервера; но я бы не подумал, что это будет проблемой. Я специально использую одно и то же имя сервера для определенной цели, и я действительно не могу это изменить. Так что мне нужно хорошее исправление для этого. Да, я мог бы купить еще один UCC SSL и использовать их оба, но я уже сделал это; на самом деле это уже SSL UCC. Так получилось, что это два разных SSL UCC.
<VirtualHost 11.22.33.44:80>
ServerName somename
ServerAlias www.site1.com
UseCanonicalName On
RewriteEngine On
RewriteOptions Inherit
</VirtualHost>
<VirtualHost 11.22.33.44:443>
ServerName somename
ServerAlias www.site1.com
UseCanonicalName On
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/cert1.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/cert1.key
SSLCertificateChainFile /usr/local/apache/conf/chain/gd_bundle.crt
RewriteEngine On
RewriteOptions Inherit
</VirtualHost>
<VirtualHost 55.66.77.88:80>
ServerName somename
ServerAlias www.site2.com
UseCanonicalName On
RewriteEngine On
RewriteOptions Inherit
</VirtualHost>
<VirtualHost 55.66.77.88:443>
ServerName somename
ServerAlias www.site2.com
UseCanonicalName On
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/cert2.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/cert2.key
SSLCertificateChainFile /usr/local/apache/conf/chain/gd_bundle.crt
RewriteEngine On
RewriteOptions Inherit
</VirtualHost>
Попробуйте добавить эти строки за пределами VirtualHost:
NameVirtualHost 11.22.33.44:443 NameVirtualHost 55.66.77.88:443
Чтобы использовать указание имени сервера, вам потребуется Apache 2.2.12 или новее. Предыдущие версии не поддерживают это расширение SSL.
(Альтернативой является mod_gnutls
- однако менее стабильна, чем официальная mod_ssl
.)