SSL mit Apache2 unter Verwendung von Multisites

SSL mit Apache2 unter Verwendung von Multisites

Ich teste StartsSL-Zertifikate zur Verwendung in Apache2 mit verschiedenen Sites.

Ich verwende eine einfache Konfiguration mit virtuellen Hosts (alles wirklich Standard) innerhalb von Apache2. Zwei getestete Domänen sind beispielsweise in /etc/apache/sites-avaliable definiert:

test1.conf

<VirtualHost *:80>
    DocumentRoot /var/www/test1/
    ServerName www.test1.com

        ErrorLog ${APACHE_LOG_DIR}/error_test1.log
        CustomLog ${APACHE_LOG_DIR}/access_test1.log combined
     RewriteEngine on
        ReWriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
<VirtualHost *:443>
        ServerAdmin [email protected]
        DocumentRoot /var/www/test1/

        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
        SSLCertificateFile /etc/ssl/certs/ssl.crt
        SSLCertificateKeyFile /etc/ssl/private/ssl_dec.key
        SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
</VirtualHost>

test2.conf

<VirtualHost *:80>

        DocumentRoot /var/www/test2/
        ServerName test2.com

        CustomLog ${APACHE_LOG_DIR}/wp_test2.log combined
        ErrorLog ${APACHE_LOG_DIR}/wp_test2_error.log
    RewriteEngine off
        ReWriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

</VirtualHost>
<VirtualHost *:443>
        ServerAdmin [email protected]
        DocumentRoot /var/www/test2/
        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
        SSLCertificateFile /etc/ssl/certs/think.crt
        SSLCertificateKeyFile /etc/ssl/private/think_dec.key
        SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
</VirtualHost>

Und ich stelle fest, dass die zweite Domäne das SSL-Zertifikat nicht akzeptiert.

Es erscheint error_bad_cert_doamin, weil es heißt, dass test2 das test1-Zertifikat verwendet. Wenn ich nur eine Domäne verwende, funktioniert es einwandfrei. Wo kann das Problem liegen?

Antwort1

Sie müssen den Servernamen auch in Ihrer SSL-Konfiguration festlegen:

<VirtualHost *:443>
        ServerName test1.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/test1/
        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
        SSLCertificateFile /etc/ssl/certs/ssl.crt
        SSLCertificateKeyFile /etc/ssl/private/ssl_dec.key
        SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
</VirtualHost>

<VirtualHost *:443>
        ServerName test2.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/test2/
        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
        SSLCertificateFile /etc/ssl/certs/think.crt
        SSLCertificateKeyFile /etc/ssl/private/think_dec.key
        SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
</VirtualHost>

verwandte Informationen