Подтвердить что ты не робот

Прокси с помощью SSL

У меня есть хост Linux, на котором работает Apache, а на хосте Windows работает IIS. У меня есть домен, который указывает на хост Linux, и ему необходимо передать (прокси) запросы на него в IIS; Таким образом, у меня есть следующее определение виртуального хоста в Apache (которое отлично работает):

<VirtualHost 192.168.0.2:80>
    ServerName www.acme.com
    DocumentRoot /var/www/acme.com

    RewriteEngine On
    RewriteOptions Inherit
    RewriteRule ^/(.*) http://win.acme.com/$1 [P]
</VirtualHost>

теперь я хочу добавить поддержку SSL; определение будет выглядеть следующим образом:

<VirtualHost 192.168.0.2:443>
    ServerName www.acme.com
    DocumentRoot /var/www/acme.com
    GnuTLSEnable On
    GnuTLSPriorities NORMAL:%COMPAT
    GnuTLSCertificateFile /var/www/ssl/www.acme.com.crt
    GnuTLSKeyFile /var/www/ssl/www.acme.com.key

    RewriteEngine On
    RewriteOptions Inherit
    RewriteRule ^/(.*) https://win.acme.com/$1 [P]
</VirtualHost>

У меня есть действительные и надежные сертификаты на обоих веб-серверах, и если я посещаю https://win.acme.com, все хорошо, однако, когда я навещаю https://www.acme.com, я получаю сообщение с внутренней внутренней ошибкой 500. Загляните в журнал ошибок:

[Wed Jul 20 08:35:34 2011] [ошибка] [клиент 76.168.166.70] SSL-прокси запрошен для www.wileybits.com:80, но не включен [Подсказка: SSLProxyEngine] [Wed Jul 20 08:35:34 2011] [error] proxy: HTTPS: не удалось включить поддержку ssl для 74.166.186.70:443 (win.acme.com)

Обратите внимание, что запрос прокси-сервера кажется неправильным доменом (wileybits)... домен, который он показывает, также размещен на моем сервере Apache, но я не понимаю, почему он появляется в журналах acme.com(возможно, обратный поиск DNS?)

в любом случае, что мне не хватает?

спасибо заранее - ekkis

p.s. имена и адреса хостов были изменены для защиты невинных:)

* обновление *

с:

RewriteRule ^/(.*) https://win.acme.com/$1 [R,L]

он работает нормально, но, конечно, имя хоста Windows становится видимым, что неприемлемо в моем сценарии

Я также попробовал (вместо mod_rewrite):

ProxyRequests Off
ProxyPass / https://win.acme.com/

но такая же ошибка

4b9b3361

Ответ 1

понял это... видимо, я могу это сделать:

SSLProxyEngine On
RequestHeader set Front-End-Https "On"
ProxyPass / https://win.acme.com/
ProxyPassReverse / https://win.acme.com/
CacheDisable *

и он отлично работает!

[решение получено из публикации mikeg на 3cx.org]

Ответ 2

Не уверен, причина этой ошибки, но вы можете попробовать использовать Squid или Varnish для достижения этой цели. Раньше я использовал Squid для проксирования безопасного экземпляра Windows IIS без проблем.