SSL ile eski alan adından yenisine Nginx yönlendirmesi


10

Ben benim site için alan adını değiştirmeye çalışıyorum https://www.myolddomain.se/içinhttps://www.mynewdomain.se/

Sorun, eski alan adım için SSL'yi tüm sayfalarda zorladım ve bu nedenle google ve diğer sitelerdeki tüm bağlantıların https ile bağlantılı olması. Bir https bağlantısından eski etki alanını ziyaret etmeye çalıştığımda bir sertifika hatası alıyorum. Yani sorum şu: https ile bağlantılı tüm sayfaları nginx'te başka bir https güvenli alan adına, bu hatayı almadan nasıl yönlendirebilirim?

Biraz araştırma yaptım ve şimdi yapılandırma dosyama eklenen web sayfalarını yeniden yönlendirmek için bu çözümü buldum. Yine de sertifika hatasını alıyorum!

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

Ama işe yarayamıyorum! Birisi bir cevap bulursa çok minnettar olurum

Yanıtlar:


11

Çözüm, müşteri özelliklerine, bütçenize ve mimari özelliklerinize bağlıdır.

1. Her iki alan da aynı IP adresinde barındırılıyorsa ve başka bir alan adınız yoksa:

İstemci TLS SNI uzantısını destekliyorsa:

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

}

X509 uzantısını anlamadıysa SubjectAltNameve yeni bir sertifika oluşturmayı göze alabiliyorsanız, her iki alan için de benzersiz bir sertifika isteyin. Yapılandırma şöyle görünmelidir:

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. Her alan adı farklı bir IP adresindeyse veya aynıysa, ancak başka bir alan adınız varsa

En genel çözüm, iki farklı IP'yi dinleyin (genellikle ek bir genel IP "sadece" barındırma sağlayıcınızdan satın alma seçeneğidir):

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

}

1
Çok teşekkür ederim! Bu cevap benim için mükemmel çalıştı ve daha ayrıntılı bir cevap istemezdim. Çok minnettarım, teşekkürler!
user246341
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.