ソリューションは、クライアントの機能、予算、およびアーキテクチャの特性に依存します。
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アドレスを持つことができる場合
最も一般的なソリューションは、2つの異なる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
}