Apache ProxyPass с SSL


59

Я хочу прокси-запросы с сайта SSL через сайт без SSL. Мой Apache httpd.conf выглядит так:

<VirtualHost 1.2.3.4:80>
    ServerName foo.com
    ProxyPass / https://bar.com/
</VirtualHost>

Поэтому, когда я захожу на http://foo.com , я ожидаю, что apache сделает запрос на https://bar.com и отправит мне страницу, которую он получил.

Вместо этого я получаю 500 ошибок, и в журнале ошибок я вижу:

[error] proxy: HTTPS: failed to enable ssl support for 4.3.2.1:443 (bar.com)

Предположительно я пропускаю директиву здесь. Что это может быть?

Не берите в голову последствия безопасности. Я полностью понимаю риски.


Какую версию Apache вы используете?
Сэм Халике

1
«Не берите в голову последствия для безопасности. Я полностью понимаю риски». - Это эквивалент Devops "Hold My Beer"; )
Эрик Кигати

Ответы:


72

Вам нужно mod_ssl, mod_proxyи необязательно mod_rewrite. В зависимости от вашего дистрибутива и версии Apache вы , возможно , придется проверить , если mod_proxy_connectи mod_proxy_httpбудут загружены , а также.

Директивы для включения поддержки SSL прокси находятся в mod_ssl:

<VirtualHost 1.2.3.4:80>
    ServerName foo.com
    SSLProxyEngine On
    SSLProxyCheckPeerCN on
    SSLProxyCheckPeerExpire on
    ProxyPass / https://secure.bar.com
    ProxyPassReverse / https://secure.bar.com
</VirtualHost>

IIRC вы также можете использовать:

    RewriteRule / https://secure.bar.com [P]    # don't forget to setup SSLProxy* as well

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.