Tengo Apache y un servicio web personalizado que no es Apache ejecutándose en el mismo servidor. Estoy intentando que Apache realice un proxy inverso de las conexiones SSL al otro sitio para evitar que aparezcan advertencias de SSL cuando alguien accede a mi sitio ingresando la dirección en su navegador (https://xx.xx.xx.xx). Me gustaría que la solicitud se cambie automáticamente a una solicitud FQDN en esas circunstancias para evitar advertencias de certificado.
Mi sitio se ejecuta en un servicio personalizado (no Apache) y no tiene la capacidad de detenerlo. Mi plan es configurar Apache para que escuche en 443 y redirigir al puerto 80 en el mismo cuadro y usar algún tipo de regla de reescritura para evitar el acceso IP directo o redirigirlo.
Puedo hacer que esa parte funcione bien, pero las solicitudes directas a la IP no se redirigen automáticamente a las solicitudes del nombre. La configuración de prueba que funciona parcialmente en el puerto 8080 se encuentra a continuación.
<VirtualHost *:8080>
ServerName fqdn
SSLEngine On
SSLCertificateFile /etc/httpd/ssl/Cert.crt
SSLCertificateKeyFile /etc/httpd/ssl/Key.key
SSLCertificateChainFile /etc/httpd/ssl/TrustedRoot.crt
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
AddDefaultCharset Off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://fqdn:80/
ProxyPassReverse / http://fqdn:80/
ErrorLog logs/myserver-error_log
CustomLog logs/myserver-access_log common
</VirtualHost>
Probé algunas directivas de reescritura pero no tuve mucho éxito. Además, las redirecciones de JavaScript no evitarán los errores de SSL. ¿Ideas?
Respuesta1
Cambie su servicio para escuchar en un puerto al que no se puede acceder desde el exterior, digamos 8888. Apache debe manejar cada solicitud entrante, enviando una redirección (reescritura) para aquellas que no le agradan. Aquellos que satisfacen, ej. el FQDN:
ProxyPass / http://127.0.0.1:8888/
ProxyPassReverse / http://127.0.0.1:8888/
Agregue un host virtual en el puerto 443 para las solicitudes seguras (https/SSL) y un servidor predeterminado para aquellas solicitudes que lleguen a su sistema sin utilizar el FQDN.