Mam dwie nazwy hosta o tej samej nazwie domeny, którą chcę obsługiwać przez HTTPs. Mam certyfikat wildcard-SSL i utworzyłem dwie konfiguracje vhost:
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;
Dostaję jednak ten sam vhost, który jest obsługiwany dla dowolnej nazwy hosta.
nginx
ssl
virtualhost
ssl-certificate
https
vincent.io
źródło
źródło
ssl_certificate
issl_certificate_key
które powinny zostać skonfigurowane wewnątrzserver
lubhttp
lokalizację. W twoim przykładzie zadeklarowałeś go w pierwszejserver
lokalizacji, ale nie zadeklarowałeś go dla dwóch pozostałych vhostów.ssl_certificate
,ssl_certificate_key
assl
na default_server tylko. BTW, ta konfiguracja faktycznie działa.ssl
nalisten
dyrektywie dla tej pracy z nginx 1.4.x. Mojelisten
dyrektywy w vhostach również musiały być dosłownie takie same (logiczna równoważność nie była wystarczająca).W rzeczywistości jest to wyjaśnione w instrukcji: http://nginx.org/en/docs/http/configuring_https_servers.html#certificate_with_several_names
Teraz, jeśli masz wiele witryn, sugeruję przechowywanie ich wszystkich w folderze zawierającym tylko część serwera {} jak wyżej w pojedynczych plikach oraz dyrektywę dołączania w pliku głównym, aby załadować wszystkie:
źródło