Nginx redireciona do domínio antigo para o novo com ssl

5

Estou tentando alterar o nome de domínio do meu site de https://www.myolddomain.se/ para https://www.mynewdomain.se/

O problema é que, no meu antigo domínio, forcei SSL em todas as páginas e, portanto, todos os links no google e em outros sites estão vinculados a https. Quando tento visitar o domínio antigo de um link https, recebo um erro de certificado. Então, minha pergunta é: como posso redirecionar todas as páginas vinculadas com https para outro domínio seguro https, no nginx, sem receber esse erro?

Eu fiz algumas pesquisas e encontrei esta solução para redirecionar páginas da web, que agora está inserida no meu arquivo de configuração. Embora eu ainda receba o erro de certificado!

server {
        server_name .myolddomain.se;
        return 301 https://www.mynewdomain.se$request_uri;
}

Mas eu simplesmente não consigo fazer isso funcionar! Se alguém pudesse chegar a uma resposta eu ficaria muito grato

    
por user246341 02.10.2014 / 22:25

1 resposta

6

A solução depende das capacidades do cliente, seu orçamento e especificidades de arquitetura.

1. Se os dois domínios estiverem hospedados no mesmo endereço IP e você não puder ter outro:

Se o cliente suportar a extensão TLS SNI:

server {
    listen X.X.X.X:443 ssl;
    ssl_certificate /path/to/myolddomain.cert;
    ssl_certificate_key /path/to/myolddomain.key;
    server_name .myolddomain.se;
    return 301 https://www.mynewdomain.se$request_uri;
}


server {
    listen X.X.X.X:443 ssl;
    ssl_certificate /path/to/mynewdomain.cert;
    ssl_certificate_key /path/to/mynewdomain.key;
    server_name .mynewdomain.se;

    [ ... ] # Your stuff

}

Se isso não acontecer, mas entender x509 extensão SubjectAltName e você puder gerar um novo certificado, solicite um certificado exclusivo para ambos os domínios. A configuração deve se parecer com:

server {
    listen X.X.X.X:443 ssl default_server;
    ssl_certificate /path/to/domain.cert;
    ssl_certificate_key /path/to/domain.key;
    server_name _;
}

server {
    listen X.X.X.X:443;
    server_name .myolddomain.se;
    return 301 https://www.mynewdomain.se$request_uri;
}


server {
    listen X.X.X.X:443;
    server_name .mynewdomain.se;

    [ ... ] # Your stuff

}

2. Se cada domínio estiver em um endereço IP distinto ou se estiver no mesmo, mas você pode ter outro

A solução mais genérica, ouça em dois IPs diferentes (normalmente, um IP público adicional é "simplesmente" uma opção para comprar em seu provedor de hospedagem):

server {
    listen X.X.X.X:443 ssl;
    ssl_certificate /path/to/myolddomain.cert;
    ssl_certificate_key /path/to/myolddomain.key;
    server_name .myolddomain.se;
    return 301 https://www.mynewdomain.se$request_uri;
}

server {
    listen Y.Y.Y.Y:443 ssl;
    ssl_certificate /path/to/mynewdomain.cert;
    ssl_certificate_key /path/to/mynewdomain.key;
    server_name .mynewdomain.se;

    [ ... ] # Your stuff

}
    
por 02.10.2014 / 22:46