当社には、SSL を必要とする Plesk を実行する GoDaddy 専用サーバーがあります。
証明書ファイルを生成し、証明書ファイルの場所を Apache に伝える vhost_ssl.conf を作成しました (デフォルトの Plesk Apache 構成 http.include を編集できないため、vhost_ssl.conf は httpd.include にインクルードされます)。
SSLCertificateFile /usr/local/psa/var/certificates/domain.com.crt
SSLCertificateKeyFile /usr/local/psa/var/certificates/domain.com.key
SSLCertificateChainFile /usr/local/psa/var/certificates/sub.class1.server.ca.pem
Apache を停止/起動すると、起動が拒否されます。error_log にも何も表示されません (奇妙です)。
次に、httpd.include を開いて次の部分を見つけました:
<VirtualHost 208.xxx.xxx.xxx:443>
ServerName domain.com:443
ServerAlias www.domain.com
UseCanonicalName Off
SSLEngine on
SSLVerifyClient none
SSLCertificateFile /usr/local/psa/var/certificates/certagC9054
Include /var/www/vhosts/domain.com/conf/vhost_ssl.conf
それから私はコメントアウトした
SSLCertificateFile /usr/local/psa/var/certificates/certagC9054
(これは Plesk の SSL 証明書です) をインストールし、Apache を再起動すると、問題なく動作しました。
Apache は同じ VirtualHost ディレクティブ内に複数の SSLCertificateFile が存在することを好まないようです。
Plesk を使用したことがある人なら誰でも知っているように、httpd.include の SSLCertificateFile ディレクティブを単に削除することはできません。誰かがそれを使用すると、Plesk が私の変更を上書きしてしまうからです。これが vhost_ssl.conf にある理由です。
それで私は行き詰まっています。これは私の貧弱な管理スキルの範囲を超えています。何が起こっているのかを私に教えてくれる、自分が何をしているのかを知っている人がいればありがたいです。
前もって感謝します。
答え1
Plesk を使用した経験では、手動で構成ファイルを編集するのではなく、Plesk 管理サイトを使用してサイトを管理すると、一般的にうまくいきます。Plesk の SSL 証明書の組み込みサポートは非常に優れています。サードパーティから取得した証明書を簡単に追加し、Plesk で構成したサイトの 1 つに関連付けることができます。
構成ファイルを直接変更することを選択した場合、投稿で私が見る危険信号は、同じ仮想ホストに 2 つの異なる証明書を適用しようとしていることです。私の経験では、SSL 証明書は通常、IP アドレスと SSL 証明書の間に 1:1 の関係がある場合にのみ機能します。私の提案は、SSL 証明書の 1 つを削除するか、仮想ホストを異なる IP アドレスの 2 つの別々のサイトに分割することです。
答え2
これは Plesk とは何の関係もありません。問題は SSL と HTTP の動作方法にあります。基本的に、SSL は起動前にサーバーの名前を知らないため、Apache は使用する証明書のセットを選択できません。http://www.modssl.org/docs/2.8/ssl_faq.html#ToC47この鶏が先か卵が先か問題の詳細については、こちらをご覧ください。