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
"Не забувайте про наслідки для безпеки. Я повністю розумію ризики". - Це еквівалент девепса "Тримай моє пиво"; )
Ерік Кігаті

Відповіді:


70

Вам потрібно 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.