同じApache2のサーバー上のVirtualHostを使用して2つの異なる証明書を使用するには?
-
20-09-2019 - |
質問
私は、ドメインwww.mondomaine.frためガンディから証明書を取得します しかしsql.mondomaine.frのために、私は自己署名SSL証明書を使用していた。
I活性sql.mondomaine.fr場合、www.mondomaine.fr代わりGandiśの一方の自己署名証明書を使用しています。
私は、SQLをdesactivate場合。すべてが正常に動作します。
どのように私は別の証明書の使用を管理することができますか?
これは最初のVirtualHostの設定は、すべてのSSLのVirtualHostのために取っていることを縫い目ます。
ご協力いただきありがとうございます。
ここに私の設定です:
PHPMyAdminの場合:
<VirtualHost *:443>
# Chemin vers les données web
DocumentRoot /usr/share/phpmyadmin
ServerName sql.mondomaine.fr
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/phpmyadmin.pem
</VirtualHost>
mondomaine.frのために
<VirtualHost *:443>
ServerName www.mondomaine.fr
DocumentRoot /var/www/mondomaine/
CustomLog /var/log/apache2/secure_access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/mondomaine.fr.crt
SSLCertificateKeyFile /etc/ssl/mondomaine.fr.key
SSLCACertificateFile /etc/ssl/GandiStandardSSLCA.pem
SSLVerifyClient None
</VirtualHost>
は構成が読み出された第1の仮想ホストがPHPMyAdmin.pem ModSSLはこの1つを使用しているのであれば正しく、それがある場合mondomaine.fr.crt最初のバーチャルホストは、Apacheは、このいずれかを使用します。
解決
あなたはSSL上のHTTPの一般的な問題に直面して実行していますSSLハンドシェイク(証明書が提示されて)完了しました。クライアントは、バーチャルホストをサポートする特定の意図をもって、SSLハンドシェイク中に接続するように意図されたものをホストを指定することができます(RFC 4366で指定された)TLSサポートの拡張の最近のバージョン。 RFCを引用する:
""」 TLSは、サーバーに指示するクライアントのためのメカニズムを提供しません。 それが接触しているサーバーの名前。これは、クライアントのために望ましいかもしれ への安全な接続を容易にするために、この情報を提供します 単一根本的に複数の「仮想」サーバをホストするサーバー ネットワークアドレス。 "" "
ウィキペディアによると、Firefoxの、オペラ、IE、クロム、およびSafariの最新バージョンは、この拡張機能をサポートしています。他のクライアントはまだ拡張子を送信しないだろう、とあなたはそこに運の出ています。また、機能拡張のサポートを有効にするには、少なくともTLS 1.1を使用する必要があります。
Apacheでこれを設定する方法についていくつかのドキュメントではあります。あなたがお住まいの地域の設定に応じて、特定のオプションではOpenSSLおよび/またはApacheを再構築する必要があります。
他のヒント
あなたの証明書を作成したか、そのdepens。あなたが唯一のwwwサブドメインのためにそれを購入した場合、文句を言わないSQLのために働きます。 何をする必要がある、それはすべてのサブドメインを許可するようにしますが、私の知る限り、それらの証明書は、より高価です。
一方では、あなたがあなた自身のceritificateを使用することができ、あなただけがあなたのvirtutalhostを作成するときに何を入れているわからする必要があります。
<virtualhost XXX.XXX.XXX.XXX:443>
serverName www.mondomaine.fr
# Gandiś ceritificate
</virtualhost>
<virtualhost XXX.XXX.XXX.XXX:443>
serverName sql.mondomaine.fr
# your own certificate stuff
</virtualhost>