proxy:error AH00898: Ошибка во время установления SSL-соединения с удаленным сервером

proxy:error AH00898: Ошибка во время установления SSL-соединения с удаленным сервером

У меня есть сервер, который действует как front-end для почтового сервера cPanel в сети. Apache proxy на front-end сервере работал 152 дня без сбоев, а затем внезапно я получаю ошибки 500/502 при его использовании для доступа к веб-почтовым клиентам почтового сервера.

Front-end сервер использует подписанный SSL-сертификат, cPanel-сервер использует самоподписанный сертификат. Вот вывод журнала ошибок с front-end сервера, когда это впервые началось:

[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

В качестве сервера переднего плана используется экземпляр EC2, на котором запущен Apache/2.4.6 (Amazon) My VirtualHost. Настройка прокси-сервера на этом сервере выглядит следующим образом:

< 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>

Насколько я могу судить, на сервере front-end ничего не изменилось, я не делал никаких обновлений или чего-то в этом роде. Заметив эту проблему и попытавшись ее исправить, но безуспешно, я попробовал перезапустить оба сервера, но это не помогло.

Какие-либо предложения?

решение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

Если внутренний сервер использует устаревший самоподписанный сертификат, необходим еще один вариант (при отсутствии доступа к внутреннему серверу):

SSLProxyCheckPeerExpire off

решение3

Я тоже получаю ту же ошибку, но в моем случае принятый здесь ответ решил эту ошибку:https://stackoverflow.com/questions/47718508/apache-proxypass-https-and-remote-server-with-sni

я добавил

ProxyAddHeaders off
ProxyPreserveHost off

решение4

Не забудьте перезапустить back-end сервер после обновления его сертификатов, на случай, если он не определит, были ли обновлены файлы сертификатов. Таким образом, вам не нужно будет устанавливать директиву SSLProxyCheckPeerExpire off.

Связанный контент