web-dev-qa-db-ja.com

Apache 2.4 / SSL証明書エラー:AH01903:CA証明書チェーンの構成に失敗しました

最近、Apache 2.4/Mod_sslサーバーでSSL証明書の1つを更新する必要がありました。

2つのVhostがあり、SNIはなく、それぞれが別々のNICで実行されています。これまで、証明書は両方ともGlobalsign OrganizationSSLであり、一方はURLに固有であり、もう一方はワイルドカードです。これはすべて正常に実行されていました。

私のクライアントはExtendedValidationSSLが必要でした。このチェーンが動作するために必要なルートCAと中間証明書をダウンロードしました。しかし、証明書を切り替えると、Apacheはチェーンの初期化を拒否します。

次のエラーがあります。

  • Apacheログ:[ssl:emerg] [pid 7394:tid 140377904683136] AH02311:mod_sslの初期化中に致命的なエラーが発生し、終了します。
  • 仮想ホストログ:[ssl:emerg] [pid 7394:tid 140377904683136] AH01903:CA証明書チェーンの構成に失敗しました!

私の仮想ホストSSL設定:

Vhost 1(組織SSL):

SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ALL:!ADH:!EDH:!DHE:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLHonorCipherOrder     on
    SSLCertificateFile /path/to/organization.crt
    SSLCertificateKeyFile /path/to/server.key
    SSLCertificateChainFile /path/to/intermediate.pem

Vhost 2(Extended Validation SSL):

SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCACertificateFile /path/to/gs_root_ca.crt
    SSLCertificateChainFile /path/to/intermediate.crt
    SSLCertificateFile /path/to/extended_validation.crt
    SSLCertificateKeyFile /path/to/server2.key

私はSSLスペシャリストではないので、ExtendedValidationとOrganizationSSL証明書が共存できない理由がわかりません。

1つの仮想ホストともう1つの仮想ホストを削除しようとしましたが、完全に機能しています。そのため、メインの本番バックオフィスが機能するために、使用頻度の最も低いvhostを無効にする必要がありました。

そのようなエラーに遭遇したことがありますか?それは正常な動作ですか?両方のサイトを再度実行するにはどうすればよいですか?

あなたの専門知識をありがとう!

1
IsKor

正しく設定していません。

思い出してみましょう:

  • SSLCertificateKeyFileロード秘密鍵(これは問題なく実行しています)
  • SSLCertificateFileロードサーバー証明書チェーン。これは、サーバー証明書とその署名CAをリーフ(証明書)からルート(上位レベルのCA)にソートしたものです。
  • SSLCertificateChainFile非推奨 Apache 2.4では、これを削除します。
  • SSLCACertificateFileクライアント証明書を使用してSSLを介して認証するクライアントのCAをロードします。 これIS SSL CLIENT AUTHに使用したいものです。

Sidenote:あなたの暗号スイートは一見非常に不正確で安全ではないようです。その変更もチェックする価値があります。

編集コメントに基づく。 2.4.6以前の場合

  • SSLCertificateFileロードサーバー証明書
  • SSLCertificateChainFileロードサーバー証明書CAチェーン
  • SSLCACertificateFileクライアント証明書を使用してSSLを介して認証するクライアントのCAをロードします。 これIS SSL CLIENT AUTHに使用したいものです。
1
ezra-s