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 Предполагается ли опускать стены против атаки "человек посередине", не так ли?) Но пока ничего не получалось.

1 ответ

Решение

Видимо единственная директива, которую я пропустил, SSLProxyCheckPeerName off, Теперь это работает.

Другие вопросы по тегам