Назад | Перейти на главную страницу

ProxyPass HTTPS на другой сервер

У меня есть сервер frontend.example.com с публичным IP. Это Apache (2.4) должен проксировать трафик, поступающий на service1.example.com (Псевдоним DNS для frontend.example.com).

service1.example.com виртуальная машина в частной локальной сети (192.168.56.0) между двумя.

Теперь это просто для HTTP:

<VirtualHost *:80>
        ServerName service1.example.com

        ProxyPass / http://192.168.56.2/
        ProxyPassReverse / http://192.168.56.2/

        <Location "/">
                Require all granted
        </Location>
</VirtualHost>

Я пытаюсь сделать то же самое для HTTPS:

<VirtualHost *:443>
        ServerName service1.example.com

        SSLEngine On
        SSLProxyEngine On
        ProxyRequests Off
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerExpire off
        SSLInsecureRenegotiation on
        SSLProxyVerify none
        SSLVerifyClient none
        SSLCertificateFile /etc/ssl/certs/example_com.crt
        SSLCertificateKeyFile /etc/ssl/certs/example_com.key

        ProxyPass / https://192.168.56.2/
        ProxyPassReverse / https://192.168.56.2/

        <Location "/">
                Require all granted
        </Location>
</VirtualHost>

Пытаюсь получить доступ service1.example.com через HTTPS возвращает: Ошибка во время установления связи SSL с удаленным сервером

Безопасность здесь меня не касается. service1 требует соединение HTTPS с некоторыми из его служб, поэтому я не просто проксирую HTTPS на HTTP. я не хочу frontend.example.com быть вовлеченным с SSL. Я бы хотел, чтобы там было написано: «Эй, у меня есть соединение на 443, я не занимаюсь этим, я просто пересылаю его на этот внутренний IP, который позаботится об этом». Я просто хочу, чтобы он передал запрос. Это можно сделать?

Как вы можете видеть в конфигурации HTTPS выше, я попытался максимально ослабить безопасность (например, SSLInsecureRenegotiation on предполагается, что нужно снизить стены против атаки «человек посередине», не так ли?). Но пока ничего не работало.

По-видимому, единственная пропущенная мне директива - SSLProxyCheckPeerName off. Теперь это работает.