
Entonces en el pasado uséhttps://ejemplo.com. Entonces decidí que quería usarhttps://miotroejemplo.comen lugar de ejemplo.com. Así que configuré el servidor, apunté DNS a ese servidor y todo fue genial. Ahora quería redirigirhttps://ejemplo.comahttps://miotroejemplo.compara que las personas con la dirección anterior continuaran en el nuevo sitio. Esto funciona bien para redirigir el puerto 80 al nuevo dominio; sin embargo, al intentar redirigir el puerto 443 (el puerto SSL), Apache parece requerir que haya un certificado SSL válido para el dominio anterior (aunque ya no estoy sirviendo una versión segura). del sitio en esa dirección). Mi certificado SSL para el dominio anterior ha caducado y, como no hay nada que proteger, me pregunto: ¿cómo hago para realizar este tipo de redireccionamiento?
configuración de ejemplo.com:
▽
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /sites/example.com/html
ServerName example.com
ServerAlias www.example.com
Redirect / https://myotherexample.com/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Y la versión SSL que necesito para redirigir al nuevo dominio:
<VirtualHost *:443>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /sites/example.com/html
ServerName example.com
ServerAlias www.example.com
Redirect / https://myotherexample.com/
<Directory /sites/example.com/html>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/example.com.key
# this ssl is expired now
SSLCertificateFile /etc/apache2/ssl/example.com.crt
SSLCertificateChainFile /etc/apache2/ssl/example.com.IntermediateCA.crt
</VirtualHost>
Obviamente estoy haciendo esto de manera incorrecta, pero ¿hay alguna manera de redirigir un dominio SSL (la versión https del dominio) a un nuevo dominio usando Apache, sin necesidad de mantener un certificado SSL activo en el dominio anterior? ¡Muchas gracias!
Respuesta1
Este es el comportamiento que cabría esperar. Imagínese si alguien secuestrara su DNS y configurara una redirección 301. Puedes usarhttps://letsencrypt.org/para obtener un certificado gratuito y redirigir a los clientes hasta que ya no se acceda al dominio anterior.
Respuesta2
Voté a favor de la respuesta de Matt, pero quiero decirlo de manera más explícita.
La redirección es una cosa HTTP, implementada como un conjunto de códigos de estado de respuesta (3XX) y un encabezado específico (Ubicación). Esta es una transacción HTTP ordinaria. HTTP en HTTPS es posible estrictamente después del establecimiento exitoso de la conexión TLS, y se requiere el certificado válido para TLS. Entonces, no hay certificado válido => no TLS => no HTTPS => no es posible redireccionamiento.
El certificado caducado no es válido, por lo que no es posible hacer nada similar a HTTP hasta que se reemplace el certificado, incluidas las redirecciones.