Como redirecionar domínio com certificado SSL expirado para novo domínio usando Apache

Como redirecionar domínio com certificado SSL expirado para novo domínio usando Apache

Então, no passado eu useihttps://example.com. Então decidi que queria usarhttps://myotherexample.comem vez de exemplo.com. Então configurei o servidor, apontei o DNS para aquele servidor e tudo ficou ótimo. Agora eu queria redirecionarhttps://example.comparahttps://myotherexample.compara que as pessoas com o endereço antigo continuassem no novo site. Isso funciona bem para redirecionar a porta 80 para o novo domínio, no entanto, ao tentar redirecionar a porta 443 (a porta SSL), o Apache parece exigir que haja um certificado SSL válido para o domínio antigo (mesmo que eu não esteja mais servindo uma versão segura do site nesse endereço). Meu certificado SSL para o domínio antigo expirou e, como não há nada para proteger, fico pensando: como faço para fazer esse tipo de redirecionamento?

configuração exemplo.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>

E a versão SSL que preciso redirecionar para o novo domínio:

<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, estou fazendo isso da maneira errada, mas existe uma maneira de redirecionar um domínio SSL (a versão https do domínio) para um novo domínio usando o Apache, sem a necessidade de manter um certificado SSL ativo no domínio antigo? Muito obrigado!

Responder1

Este é o comportamento que você esperaria. Imagine se alguém sequestrasse seu DNS e configurasse um redirecionamento 301. Você pode usarhttps://letsencrypt.org/para obter um certificado gratuito e redirecionar clientes até que o domínio antigo não seja mais acessado.

Responder2

Votei positivamente na resposta de Matt, mas quero declará-la mais explicitamente.

Redirecionar é uma coisa HTTP, implementada como um conjunto de códigos de status de resposta (3XX) e um cabeçalho específico (Local). Esta é uma transação HTTP comum. HTTP em HTTPS é possível estritamente após o estabelecimento bem-sucedido da conexão TLS, e o certificado válido é necessário para TLS. Portanto, nenhum certificado válido => sem TLS => sem HTTPS => nenhum redirecionamento possível.

O certificado expirado não é válido, portanto não é possível fazer nada HTTP até que o certificado seja substituído, incluindo redirecionamentos.

informação relacionada