Решение зависит от возможностей клиента, вашего бюджета и особенностей архитектуры.
1. Если оба домена размещены на одном IP-адресе и у вас не может быть другого:
Если клиент поддерживает расширение 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
}
Если он не понимает расширение x509, SubjectAltName
и вы можете позволить себе создать новый сертификат, то запросите уникальный сертификат для обоих доменов. Конфигурация должна выглядеть так:
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. Если каждый домен находится на отдельном IP-адресе или если он находится на том же самом, но вы можете иметь другой
Наиболее универсальное решение - прослушивание двух разных IP-адресов (обычно дополнительный публичный IP-адрес «просто» можно приобрести у вашего хостинг-провайдера):
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
}