sslproxyengine mod_proxy example enable apache ssl proxy mod-proxy mod-ssl

mod_proxy - reverse proxy apache centos 7



¿Es posible ignorar un certificado Apache proxy? (1)

Para información de fondo: (Pregunta en la parte inferior)

Estoy tratando de conectarme con un cliente, que tiene 8 servidores, todos los cuales tienen direcciones IP únicas. El cliente utiliza el mismo certificado SSL en todos los servidores (para este ejemplo, cert name == www.all_servers.com). El cliente solo permite solicitudes entrantes a través de https.

Estoy intentando crear un proxy apache usando mod_proxy que mapea diferentes asignaciones de URI a diferentes servidores. Por ejemplo:

https://PROXY_SERVER/SERVER1/{REQUEST}

Esto enviaría {REQUEST} a server1

https://PROXY_SERVER/SERVER2/{REQUEST}

enviaría {REQUEST} a server2. Hasta ahora, bastante simple.

En Apache 2.2, esto podría lograrse utilizando las direcciones IP de esta manera:

SSLProxyEngine On ProxyPass /server1 https://1.1.1.1/ ProxyPassReverse /server1 https://1.1.1.1/ ProxyPass /server2 https://1.1.1.2/ ProxyPassReverse /server2 https://1.1.1.2/

Esto se debió a que Apache 2.2 no verificaba si el certificado coincidía (1.1.1.1! = Www.all_servers.com)

Sin embargo, en Apache 2.4, ahora tengo problemas con el certificado (con razón). (Este código exacto funciona en una caja de apache 2.2)

[Thu Oct 10 12:01:48.571246 2013] [proxy:error] [pid 13282:tid 140475667224320] (502)Unknown error 502: [client 192.168.1.1:48967] AH01084: pass request body failed to 1.1.1.1:443 (1.1.1.1) [Thu Oct 10 12:01:48.571341 2013] [proxy:error] [pid 13282:tid 140475667224320] [client 192.168.1.1:48967] AH00898: Error during SSL Handshake with remote server returned by /server1/asd [Thu Oct 10 12:01:48.571354 2013] [proxy_http:error] [pid 13282:tid 140475667224320] [client 192.168.1.1:48967] AH01097: pass request body failed to 1.1.1.1:443 (1.1.1.1) from 192.168.1.1 ()

No puedo usar / etc / hosts, ya que un servidor funcionaría, usando:

1.1.1.1 www.all_servers.com SSLProxyEngine On ProxyPass /server1 https://www.all_servers.com/ ProxyPassReverse /server1 https://www.all_servers.com/

Pero muchos servidores no lo harían

Entonces, a la pregunta real:

¿Hay alguna manera de forzar a mod_proxy a ignorar los certificados que no coinciden? O bien, hay una mejor manera de hacer esto.

¡Gracias por cualquier ayuda en esto!


Puede configurar las opciones de SSLProxy* en su servidor Apache (que es un cliente en lo que respecta a las conexiones de proxy inverso).

Esto se hizo con SSLProxyCheckPeerCN (desactivado de manera predeterminada en 2.2, pero SSLProxyCheckPeerCN de manera predeterminada en 2.4), pero no estoy seguro de cómo funcionará con las direcciones IP (ya que tener direcciones IP en el CN ​​no es estándar). Hay una nueva opción en Apache Httpd 2.4 para verificar las SAN ( SSLProxyCheckPeerName ), pero tampoco estoy seguro de cómo se comporta para las direcciones IP.

Tener direcciones IP en las extensiones SAN de DNS o en la CN no es compatible con HTTPS :

Si una extensión subjectAltName de tipo dNSName está presente, DEBE usarse como la identidad. De lo contrario, DEBE usarse el campo Nombre común (más específico) en el campo Asunto del certificado. Aunque el uso del Nombre común es una práctica existente, está en desuso y se recomienda a las Autoridades de certificación que usen el nombreDNS.

[...]

En algunos casos, el URI se especifica como una dirección IP en lugar de un nombre de host. En este caso, iPAddress subjectAltName debe estar presente en el certificado y debe coincidir exactamente con la IP en el URI.