Eu tenho dois nomes de host que compartilham o mesmo nome de domínio que desejo exibir através de HTTPs. Eu tenho um certificado SSL curinga e criei duas configurações de 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;
Anfitrião 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;
No entanto, eu recebo o mesmo vhost servido para qualquer nome de host.
nginx
ssl
virtualhost
ssl-certificate
https
vincent.io
fonte
fonte
ssl_certificate
essl_certificate_key
deve ser configurado dentroserver
ouhttp
local. No seu exemplo, você o declarou dentro do primeiroserver
local, mas não o declarou para os outros dois vhosts.ssl_certificate
,ssl_certificate_key
essl
em DEFAULT_SERVER somente. BTW, esta configuração realmente funciona.ssl
dalisten
diretiva para que isso funcionasse com um nginx 1.4.x. Minhaslisten
diretrizes sobre os fantasmas também tinham que ser literalmente iguais (a equivalência lógica não era suficiente).Na verdade, é explicado no manual: http://nginx.org/en/docs/http/configuring_https_servers.html#certificate_with_several_names
Agora, se você tiver muitos sites, sugiro armazenar todos eles em uma pasta com apenas a parte do servidor {}, como acima, em arquivos únicos, e uma diretiva de inclusão no arquivo principal para carregar todos eles:
fonte