mod-rewrite - how - apache rewriterule examples
Proxying con SSL (2)
Tengo un host Linux que ejecuta Apache y un host de Windows que ejecuta IIS. Tengo un dominio que apunta al host Linux y necesita retransmitir (proxy) solicitudes a IIS; Por lo tanto, tengo la siguiente definición de host virtual en Apache (que funciona bien):
<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>
ahora quiero agregar soporte SSL; la definición se convierte en:
<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>
Tengo certificados válidos y confiables en ambos servidores web y si visito https://win.acme.com
todo está bien, sin embargo, cuando visito https://www.acme.com
recibo un mensaje de Error interno del servidor 500. Un vistazo a los registros de error muestra:
[Mié 20 de julio, 08:35:34, 2011] [error] [cliente 76.168.166.70] Proxy SSL solicitado para www.wileybits.com:80, pero no habilitado [Sugerencia: SSLProxyEngine] [Mié 20 de julio, 08:35:34 2011] proxy [error]: HTTPS: no se pudo habilitar el soporte de ssl para 74.166.186.70:443 (win.acme.com)
note que la solicitud de proxy parece ser para el dominio incorrecto (wileybits) ... el dominio que muestra también está alojado en mi servidor Apache, pero no entiendo por qué aparece en los registros de acme.com (un reverso) Búsqueda de DNS tal vez?)
en cualquier caso, ¿qué me estoy perdiendo?
gracias de antemano - ekkis
ps nombres de host y direcciones han sido alterados para proteger a los inocentes :)
* actualización *
con:
RewriteRule ^/(.*) https://win.acme.com/$1 [R,L]
parece funcionar bien, pero, por supuesto, el nombre de host de Windows se vuelve visible, lo cual no es aceptable en mi escenario
También probé (en lugar de mod_rewrite):
ProxyRequests Off
ProxyPass / https://win.acme.com/
pero el mismo error
No estoy seguro de la causa de este error, pero es posible que desee probar con Squid o Barniz para lograr esto. Anteriormente, utilicé Squid para proxy una instancia segura de Windows IIS sin problemas.
lo descubrí ... aparentemente puedo hacer esto:
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
ProxyPass / https://win.acme.com/
ProxyPassReverse / https://win.acme.com/
CacheDisable *
¡Y funciona bien!
[la solución vino de la publicación de mikeg en 3cx.org]