マルチサイトを使用した Apache2 による SSL

マルチサイトを使用した Apache2 による SSL

さまざまなサイトで apache2 内で使用する startssl 証明書をテストしています。

私は apache2 内で仮想ホスト (すべて標準) を使用したシンプルな設定を使用しています。テスト対象の 2 つのドメインは、たとえば /etc/apache/sites-avaliable 内で定義されています。

テスト1.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>

テスト2.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>

そして、2 番目のドメインが SSL 証明書を受け入れないことがわかりました。

test2 が test1 証明書を使用しているため、error_bad_cert_doamin が表示されます。 1 つのドメインのみを使用すると、問題なく動作します。 どこに問題があるのでしょうか?

答え1

SSL 構成でもサーバー名を設定する必要があります。

<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>

関連情報