proxy:error AH00898: リモート サーバーとの SSL ハンドシェイク中にエラーが発生しました

proxy:error AH00898: リモート サーバーとの SSL ハンドシェイク中にエラーが発生しました

ネットワーク内の cPanel メールサーバーのフロントエンドとして機能するサーバーがあります。フロントエンド サーバーの Apache プロキシは 152 日間問題なく動作していましたが、突然、メールサーバーの Web メール クライアントにアクセスする際に 500/502 エラーが発生するようになりました。

フロントエンド サーバーは署名された SSL 証明書を使用し、cPanel サーバーは自己署名証明書を使用しています。これが最初に発生し始めたときのフロントエンド サーバーからのエラー ログ出力です。

[Tue Sep 10 18:22:52.959291 2013] [proxy:error] [pid 19531] (502)Unknown error 502: [client 173.xx.xx.xx:9558] AH01084: pass request body failed to 184.xx.xx.xx:2096 (184.xx.xx.xx), referer: https://domain.com:2096/cpsess12385596/3rdparty/roundcube/?_task=mail&_refresh=1&_mbox=INBOX

[Tue Sep 10 18:22:52.959469 2013] [proxy:error] [pid 19531] [client 173.xx.xx.xx:9558] AH00898: Error during SSL Handshake with remote server returned by /cpsess12385596/3rdparty/roundcube/, referer: https://domain.com:2096/cpsess12385596/3rdparty/roundcube/?_task=mail&_refresh=1&_mbox=INBOX

フロントエンド サーバーは、Apache/2.4.6 (Amazon) このサーバー上のプロキシの My VirtualHost セットアップを実行する EC2 インスタンスです。

< VirtualHost *:2096> ServerName domain.com

SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off

SSLCertificateFile /x/x/x/domain.com.crt
SSLCertificateKeyFile /x/x/x/domain.com.key
SSLCACertificateFile /x/x/x/domain.com.cabundle

ProxyPass / https://184.xx.xx.xx:2096/
ProxyPassReverse / https://184.xx.xx.xx:2096/
ProxyPassReverseCookieDomain 184.xx.xx.xx:2096 domain.com
ProxyPassReverseCookiePath / /

SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyHTMLURLMap https://184.xx.xx.xx:2096 /

< /VirtualHost>

私の知る限り、フロントエンド サーバーでは何も変更されていません。更新も何も行っていません。この問題に気づいて試行錯誤しましたが、うまくいかなかったので、両方のサーバーを再起動しようとしましたが、問題は解決しませんでした。

助言がありますか?

答え1

サーバーバージョン: Apache/2.4.6 でも同じ問題が発生しました

[1]の文書によれば、「2.4.5以降では、SSLProxyCheckPeerCNはSSLProxyCheckPeerNameに置き換えられ、その設定はSSLProxyCheckPeerName offが同時に指定された場合にのみ考慮されます。

そこで、次のエントリを追加するとうまくいきました。

SSLProxyCheckPeerName オフ

私の作業構成は次のようになります...

    ProxyRequests Off

    SSLEngine On
    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off

    SSLCertificateFile /x/x/keys/server.crt
    SSLCertificateKeyFile /x/x/keys/server.key

[1]詳しくは、http://httpd.apache.org/docs/2.4/mod/mod_ssl.html をご覧ください。

答え2

バックエンド サーバーが古い自己署名証明書を使用している場合は、もう 1 つのオプションが必要です (バックエンド サーバーにアクセスできない場合)。

SSLProxyCheckPeerExpire off

答え3

私も同じエラーが発生していますが、私の場合は、ここで受け入れられた回答によってこのエラーは解決されました。https://stackoverflow.com/questions/47718508/apache-proxypass-https-and-remote-server-with-sni

追加した

ProxyAddHeaders off
ProxyPreserveHost off

答え4

証明書ファイルが更新されたかどうかが検出されない場合に備えて、証明書を更新した後はバックエンド サーバーを再起動することを忘れないでください。そのため、ディレクティブを設定する必要はありませんSSLProxyCheckPeerExpire off

関連情報