J'ai deux noms d'hôtes partageant le même nom de domaine que je souhaite servir sur HTTP. J'ai un certificat SSL générique et j'ai créé deux configurations vhost:
Hôte 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;
Hôte 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;
Cependant, je reçois le même vhost servi pour chaque nom d'hôte.
nginx
ssl
virtualhost
ssl-certificate
https
vincent.io
la source
la source
ssl_certificate
etssl_certificate_key
doit être configuré à l'intérieurserver
ou à l'http
emplacement. Dans votre exemple, vous l'avez déclaré dans le premierserver
emplacement, mais ne l' avez pas déclaré pour les deux autres vhosts.ssl_certificate
,ssl_certificate_key
etssl
sur default_server uniquement. BTW, cette configuration fonctionne réellement.ssl
de lalisten
directive pour que cela fonctionne avec un nginx 1.4.x. Meslisten
directives dans les vhosts devaient également être littéralement les mêmes (l'équivalence logique n'était pas suffisante).Il est en fait expliqué dans le manuel: http://nginx.org/en/docs/http/configuring_https_servers.html#certificate_with_several_names
Maintenant, si vous avez plusieurs sites, je suggère de les stocker tous dans un dossier avec juste la partie serveur {} comme ci-dessus dans des fichiers uniques, et une directive include dans le fichier principal pour les charger tous:
la source