проксі: помилка AH00898: помилка під час рукостискання SSL з віддаленим сервером


16

У мене є сервер, який виступає в якості переднього для сервера cPanel в мережі. Проксі-апарат apache на передньому сервері працював 152 дні без помилок, тоді я раптом отримую помилки 500/502 при використанні його для доступу до клієнтів веб-пошти поштового сервера.

Передній сервер використовує підписаний сервер SSL, cPanel sever використовує cert, який підписується самостійно. Ось журнал помилок, який виводиться з сервера, що починається, коли він вперше розпочався:

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

Наскільки я можу подумати, що на передньому сервері нічого не змінилося, я не робив оновлення чи нічого, одного разу помітивши цю проблему і непомітно вдавшись, я спробував перезапустити на обох серверах, але це нічого не вирішило.

Будь-які пропозиції?

Відповіді:


32

Зустрічався той самий випуск із версією сервера: Apache / 2.4.6

Згідно з документацією в [1], " В 2.4.5 і пізніших версіях SSLProxyCheckPeerCN було замінено SSLProxyCheckPeerName, і його налаштування враховується лише тоді, коли SSLProxyCheckPeerName одночасно вказано ."

Тож додавання наступного запису зробило трюк:

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


1
Зауважте, що "SSLEngine On" не стосується проксі-частини конфігурації, а обслуговує цей запит через SSL / TLS, навіть якщо він згрупований з параметрами конфігурації проксі.
Персейди

14

Якщо сервер резервного сервера використовує застарілий сертифікат самопідписання, потрібен ще один варіант (якщо немає доступу до сервера резервного сервера):

SSLProxyCheckPeerExpire off

Це працювало для мене, переміщуючи зворотний проксі з apache 2.2 на 2.4
Segolas
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.