Ich habe zwei Hostnamen, die denselben Domainnamen verwenden, den ich über HTTPs bereitstellen möchte. Ich habe ein Wildcard-SSL-Zertifikat und zwei vhost-Konfigurationen erstellt:
Host 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;
Host 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;
Ich erhalte jedoch den gleichen vhost, der für beide Hostnamen bereitgestellt wird.
nginx
ssl
virtualhost
ssl-certificate
https
vincent.io
quelle
quelle
ssl_certificate
undssl_certificate_key
das sollte innerhalbserver
oderhttp
Ort konfiguriert werden . In Ihrem Beispiel haben Sie es an der erstenserver
Position deklariert, aber nicht für die anderen beiden vhosts.ssl_certificate
,ssl_certificate_key
undssl
auf default_server nur. Übrigens funktioniert diese Konfiguration tatsächlich.ssl
dielisten
Direktive dafür, um mit einem 1.4.x Nginx zu arbeiten. Meinelisten
Anweisungen in den vhosts mussten auch buchstäblich gleich sein (logische Äquivalenz war nicht ausreichend).Es wird tatsächlich im Handbuch erklärt: http://nginx.org/en/docs/http/configuring_https_servers.html#certificate_with_several_names
Wenn Sie viele Sites haben, empfehle ich, alle in einem Ordner zu speichern, in dem nur der Serverteil {} wie oben in einzelnen Dateien enthalten ist, und in der Hauptdatei eine Include-Anweisung, um alle zu laden:
quelle