Використання Https між Apache Loadbalancer та backends


30

Я використовую сервер apache (2.4), налаштований як балансир навантаження перед двома серверами apache. Він прекрасно працює, коли я використовую http-з'єднання між завантажувачем і резервними програмами, однак використання https не працює. Конфігурація балансира навантаження:

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
<Proxy balancer://testcluster>
  BalancerMember https://[Backend1]:443/test
  BalancerMember https://[Backend2]:443/test
</Proxy>
ProxyPass /test balancer://testcluster

На сьогоднішній день пакети мають лише самопідписані сертифікати, тому перевірка сертифікатів вимкнена.

Журнал помилок на вантажі балансира містить наступне:

[proxy:error] [pid 31202:tid 140325875570432] (502)Unknown error 502: [client ...] AH01084: pass request body failed to [Backend1]:443 ([Backend1])
[proxy:error] [pid 31202:tid 140325875570432] [client ...] AH00898: Error during SSL Handshake with remote server returned by /test/test.jsp
[proxy_http:error] [pid 31202:tid 140325875570432] [client ...] AH01097: pass request body failed to [Backend1]:443 ([Backend1]) from [...] ()

Сторінка помилок у браузері містить:

Proxy Error

The proxy server could not handle the request GET /test/test.jsp.
Reason: Error during SSL Handshake with remote server

Як я вже говорив вище, зміна конфігурації на протокол http і порт 80 працює. Також є https-з'єднання між клієнтом і балансиром роботи, тому модуль ssl навантажувача, здається, налаштований належним чином. Підключення безпосередньо до бекенда через https також не призводить до помилок.

Заздалегідь дякую за ваш час


Редагувати: я зрозумів, проблема полягає в тому, що загальна назва моїх сертифікатів не відповідає імені сервера. Я думав, що SSLProxyVerify none не призведе до ігнорування цієї невідповідності, але це не так. До апаш- версії 2.4.5 цю перевірку можна відключити за допомогою SSLProxyCheckPeerCN вимкнено, але для версій версії (я використовую 2.4.7) SSLProxyCheckPeerName також потрібно вказати.

Документація Apache для sslproxycheckpeername

Робоча конфігурація виглядає приблизно так:

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

<Proxy balancer://testcluster>
  BalancerMember https://[backend1]:443/test
  BalancerMember https://[backend1]:443/test
</Proxy>
ProxyPass /test balancer://testcluster

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


Цікаво. Раніше я робив це з apache2.2 і ніколи не доводилося так SSLProxyVerify none і ніколи не мав проблем із самонаписанням certs. Ви впевнені, що сервер запущений.
ETL

@ETL Я не знаю, потрібен чи ні "SSLProxyVerify none", я просто додав, що сподіваюся, що це може вирішити проблему. Виклик "wget ​​https: // [backend1] /test/test.jsp - no-check-сертифікат" на завантажувальний сервер-завантажувач завантажує очікуваний файл. ng
користувач3240383

Відповіді:


16

Проблема виявилася в тому, що загальна назва сертифікатів не відповідала імені сервера.

До Apache 2.4.5 цю перевірку можна відключити за допомогою, SSLProxyCheckPeerCN offале для вищих версій (наприклад, 2.4.7) SSLProxyCheckPeerName offтакож потрібно вказати.

Документація Apache для SSLProxyCheckPeerName

Робоча конфігурація виглядає приблизно так:

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

<Proxy balancer://testcluster>
  BalancerMember https://[backend1]:443/test
  BalancerMember https://[backend1]:443/test
</Proxy>
ProxyPass /test balancer://testcluster

Ви можете перевірити версію Apache, яку у вас є :

apachectrl -V

Привіт, у мене точно така ж проблема, за винятком конфігурації мало: <Location /margin-tool> ProxyPass https://xxxx.thoughtworks.net:8443/margin-tool ProxyPassReverse https://xxxx.thoughtworks.net:8443/margin-tool </Location>ті ж налаштування не працюють. Будь-які ідеї?
користувач157735

0

Додавання нижче вирішило проблему

SSLProxyProtocol +TLSv1

5
Надання містичних зразків конфігурацій не є якісною відповіддю. Копіювання і вставлення рядків з Інтернету - це не те, що робить професійний системний адміністратор. Поясніть, що це робить і чому.
Peterh каже відновити Моніку

Зіткнувся з цим Java12 - між іншим, це вирішити мою проблему ....
womd

-2

я використовую apache 2.4.9 і додаю до httpd-ssl.conf наступний код

SSLProxyProtocol + SSLv3 + TLSv1 + TLSv1.1

я вирішив проблеми


3
Коли-небудь чули про POODLE ? SSLv3 слід вимкнути.
Свен

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