Pregunta

¿Cuál es la mejor manera de reescribir de forma transparente una URL a través de una conexión SSL con Apache 2.2?

Apache 2 no admite de forma nativa varios hosts virtuales basados ​​en nombres para una conexión SSL y he oído que mod_rewrite puede ayudar con esto.Me gustaría hacer algo como esto:

He configurado el servidor para que se pueda acceder a los sitios mediante

https://secure.example.com/dbadmin

pero me gustaría tener esto como https://dbadmin.example.com

¿Cómo lo configuro para que la regla de reescritura reescriba dbadmin.example.com en Secure.example.com/dbadmin, pero sin mostrar la reescritura en la barra de direcciones del cliente (es decir,el cliente seguirá viendo dbadmin.example.com), en todo https?

¿Fue útil?

Solución

Configure un único VirtualHost para servir tanto a Secure.example.com como a dbadmin.example.com (lo que lo convierte en el único *:443 VirtualHost que logra esto).Luego puedes usar mod_reescritura para ajustar el URI para solicitudes a dbadmin.example.com:

<VirtualHost *:443>
    ServerName secure.example.com
    ServerAlias dbadmin.example.com

    RewriteEngine on
    RewriteCond %{SERVER_NAME} dbadmin.example.com
    RewriteRule !/dbadmin(.*)$ /dbadmin$1
</VirtualHost>

Su certificado SSL deberá ser válido tanto para Secure.example.com como para dbadmin.example.com.Puede ser un certificado comodín como lo menciona Terry Lorber, o puede usar el sujetoAltName para agregar nombres de host adicionales.

Si tienes problemas, primero configúralo en <VirtualHost *> y comprobar que funciona sin SSL.La conexión SSL y el certificado son una capa separada de complejidad que puede configurar después de que la reescritura de URI esté funcionando.

Otros consejos

A menos que su certificado SSL sea del tipo "comodín" o de múltiples sitios, no creo que esto funcione.La reescritura se mostrará en el navegador y el nombre en la barra de direcciones debe ser válido según el certificado, o sus usuarios verán un error de seguridad (que siempre pueden aceptar y continuar, pero eso no suena como lo que desea ).

Más aquí.

Hay apaches mod_rewrite, o puedes configurar apache para dirigir https://dbadmin.example.com a la ruta/a/example.com/dbadmin en el servidor

<VirtualHost *>
ServerName subdomain.domain.com
DocumentRoot /home/httpd/htdocs/subdomain/
</VirtualHost>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top