マルチドメイン証明書を購入してサーバーにインストールしようとしました。
私のウェブサイトの1つのWebホストに次の情報を入力しました。
<VirtualHost *:443>
...
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/16478325.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.key
SSLCertificateChainFile /etc/apache2/ssl/16478325.ca-bundle
...
その後、Apacheを再起動しようとしましたが失敗し、Apacheログを確認するように求められました。
受信したエラーメッセージは次のとおりです。
Init: Multiple RSA server certificates not allowed
これは、1つのドメインだけでなく、サイト全体にSSL証明書をインストールする必要があるという意味だと思います。
しかし、それも動作しません。
エラーが発生します。
Illegal attempt to re-initialise SSL for server (SSLEngine On should go in the VirtualHost, not in global scope.)
なぜこれがうまくいかないのですか?すべてのドメインに対してSSLを持つようにドメインを構成するにはどうすればよいですか?
答え1
(コメントのまとめ)
Ubuntu / Debian仮想ホストと競合するSSL仮想ホストがありますdefault-ssl
。a2dissite default-ssl
すぐに問題を解決します。
これApache HTTP Server Wiki一つある名前ベースのSSL仮想ホストの構成に関するガイドラインあなたはそれを確認する必要があります。このガイドでは、すべての項目を1つのファイルに表示しますが、VirtualHost
複数の部分を複数のファイルに分割できます(sites-available/
)。とにかくすべての基本構成に含まれています。NameVirtualHost
line inports.conf
やinなどを入れることができますconf-available/
。/usr/share/doc/apache2/README.Debian.gz
Debian / Ubuntu Apacheの設定処理に関するいくつかのドキュメントが含まれています。
答え2
構成ファイルで上記の定型句SSL行をコメントアウトしたことを確認する必要があります。
#SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
#SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt
私はちょうど問題を経験し、それが私の部分のパイロットエラーであることに気づく前にあなたの質問を見つけました。
それ以外の場合は、すべてが同じホスト上の複数の証明書で動作します(つまり、同じホスト上のポート443の2つのVirtualHost設定を意味します)。