Tengo dos nombres de host que comparten el mismo nombre de dominio que quiero servir a través de HTTP. Tengo un certificado SSL comodín y creé dos configuraciones de vhost:
Anfitrión 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ón 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;
Sin embargo, obtengo el mismo vhost servido para cualquier nombre de host.
nginx
ssl
virtualhost
ssl-certificate
https
vincent.io
fuente
fuente
ssl_certificate
yssl_certificate_key
debe configurarse dentroserver
o en lahttp
ubicación. En su ejemplo, lo ha declarado dentro de la primeraserver
ubicación, pero no lo ha declarado para los otros dos vhosts.ssl_certificate
,ssl_certificate_key
yssl
solo en default_server. Por cierto, esta configuración realmente funciona.ssl
lalisten
directiva para que esto funcione con un 1.4.x nginx. Mislisten
directivas en los vhosts también tenían que ser literalmente las mismas (la equivalencia lógica no era suficiente).En realidad, se explica en el manual: http://nginx.org/en/docs/http/configuring_https_servers.html#certificate_with_several_names
Ahora, si tiene muchos sitios, sugiero almacenarlos todos en una carpeta con solo la parte del servidor {} como se indica arriba en archivos individuales, y una directiva de inclusión en el archivo principal para cargarlos todos:
fuente