
現在、Nginx は、ドメイン (例: *.website.com) のワイルドカード SSL 証明書を受け入れるように構成されています。
高価なワイルドカード証明書を購入する代わりに、トップドメインのwebsite.com用の単一ドメインSSL証明書を購入しました。
さて、このサービスでは実際に 2 つのサブドメインが使用されており、それらも SSL で保護する必要があることがわかりました。
例: a.website.com および b.website.com
質問。
a.website.com の単一サブドメイン SSL 証明書を購入するときに、nginx がその証明書を使用するように指定できるように、nginx 設定を変更するにはどうすればよいですか。
Nginx ファイルの現在の状態は次のとおりです。
server {
listen 80;
server_name website.io www.website.io;
return 301 https://website.io$request_uri;
}
server {
listen 443 ssl;
ssl on;
server_name website.io www.website.io;
client_max_body_size 5m;
add_header X-UA-Compatible "IE=Edge,chrome=1";
access_log /var/log/nginx/website.io_access.log;
error_log /var/log/nginx/website.io_error.log;
ssl_certificate /srv/ssl/website.io/ssl.crt;
ssl_certificate_key /srv/ssl/website.io/ssl.key;
error_page 500 502 503 504 /500.html;
location /500.html {
root /srv/static/website/maintenance;
}
location / {
#auth_basic "Restricted";
#auth_basic_user_file /etc/nginx/htpasswd.conf;
include uwsgi_params;
uwsgi_connect_timeout 30;
uwsgi_read_timeout 30;
uwsgi_pass 127.0.0.4:3031;
}
}
答え1
設定は次のようになります(わかりやすくするために、例のドメインを質問の本文のa.website.com
ドメインに変更しました)b.website.com
server {
listen 80;
server_name a.website.com;
return 301 https://a.website.com$request_uri;
}
server {
listen 443 ssl;
server_name a.website.com;
client_max_body_size 5m;
add_header X-UA-Compatible "IE=Edge,chrome=1";
access_log /var/log/nginx/a.website_access.log;
error_log /var/log/nginx/a.website_error.log;
ssl_certificate /srv/ssl/a.website/ssl.crt;
ssl_certificate_key /srv/ssl/a.website/ssl.key;
error_page 500 502 503 504 /500.html;
location /500.html {
root /srv/static/website/maintenance;
}
location / {
#auth_basic "Restricted";
#auth_basic_user_file /etc/nginx/htpasswd.conf;
include uwsgi_params;
uwsgi_connect_timeout 30;
uwsgi_read_timeout 30;
uwsgi_pass 127.0.0.4:3031;
}
}
server {
listen 80;
server_name b.website.com;
return 301 https://b.website.com$request_uri;
}
server {
listen 443 ssl;
server_name b.website.com;
client_max_body_size 5m;
add_header X-UA-Compatible "IE=Edge,chrome=1";
access_log /var/log/nginx/b.website.com_access.log;
error_log /var/log/nginx/b.website.com_error.log;
ssl_certificate /srv/ssl/b.website.com/ssl.crt;
ssl_certificate_key /srv/ssl/b.website.com/ssl.key;
error_page 500 502 503 504 /500.html;
location /500.html {
root /srv/static/website/maintenance;
}
location / {
#auth_basic "Restricted";
#auth_basic_user_file /etc/nginx/htpasswd.conf;
include uwsgi_params;
uwsgi_connect_timeout 30;
uwsgi_read_timeout 30;
uwsgi_pass 127.0.0.4:3031;
}
}
必要な数のサイトに対してこれを繰り返すことができます。各サイトに対して追加のサーバーブロックを定義するだけです。