2つのホスト名が同じドメイン名を共有しており、HTTPSで提供したい。ワイルドカードSSL証明書を取得し、2つの仮想ホスト構成を作成しました。
ホストA
listen 127.0.0.1:443 ssl;
server_name a.example.com;
root /data/httpd/a.example.com;
ssl_certificate /etc/ssl/wildcard.cer;
ssl_certificate_key /etc/ssl/wildcard.key;
ホストB
listen 127.0.0.1:443 ssl;
server_name b.example.com;
root /data/httpd/b.example.com;
ssl_certificate /etc/ssl/wildcard.cer;
ssl_certificate_key /etc/ssl/wildcard.key;
ただし、どちらのホスト名にも同じvhostが提供されます。
Sslリスニング/構成部分から仮想ホストを分割する必要があります:
リスニングパート:
server {
listen 127.0.0.1:443 default_server ssl;
server_name _;
ssl_certificate /etc/ssl/wildcard.cer;
ssl_certificate_key /etc/ssl/wildcard.key;
}
そして今vhosts:
server {
listen 127.0.0.1:443;
server_name a.example.com;
root /data/httpd/a.example.com;
}
server {
listen 127.0.0.1:443;
server_name b.example.com;
root /data/httpd/b.example.com;
}
それは実際にマニュアルで説明されています: http://nginx.org/en/docs/http/configuring_https_servers.html#certificate_with_several_names
ssl_certificate /etc/ssl/wildcard.cer;
ssl_certificate_key /etc/ssl/wildcard.key;
server {
listen 443 ssl;
server_name a.example.com;
root /data/httpd/a.example.com;
}
server {
listen 443 ssl;
server_name b.example.com;
root /data/httpd/b.example.com;
}
さて、あなたが多くのサイトを持っているなら、私は上記のように単一のファイルにサーバー{}部分だけを含むフォルダーにそれらのすべてを保存し、それらすべてをロードするメインファイルにインクルードディレクティブを含めることをお勧めします:
ssl_certificate /etc/ssl/wildcard.cer;
ssl_certificate_key /etc/ssl/wildcard.key;
include /etc/nginx/conf.d/subfolder/*;