letsencrypt activate ssl nginx ssl-certificate vhosts

activate - nginx ssl certificate



nginx: establezca el nombre de servidor mĂșltiple con ssl-support (1)

Me encantaría usar nginx para servir un sitio web con múltiples nombres de dominio y SSL:

  • webmail.example.com
  • webmail.beispiel.de

Ambos usan el mismo host virtual, por lo que solo configuro server_name dos veces. El problema es que necesito que nginx sirva el certificado ssl correcto para cada nombre de dominio.

¿Es esto posible con un vhost o necesito configurar dos vhosts?


Edición de noviembre de 2014 : la respuesta inicial no es correcta y está incompleta; necesitaba una actualización! aquí está.

Básicamente, hay dos casos

- Posee un certificado de comodín (o certificado de dominios múltiples)

En este caso, puede usar varios dispositivos que escuchan la misma dirección IP / puerto https, y ambos dispositivos usan el mismo certificado (escuchando en todas las interfaces), por ej.

server { listen 443; server_name webmail.example.com; root /var/www/html/docs/sslexampledata; ssl on; ssl_certificate /var/www/ssl/samecertif.crt; ssl_certificate_key /var/www/ssl/samecertif.key; ... } server { listen 443; server_name webmail.beispiel.de; root /var/www/html/docs/sslbeispieldata; ssl on; ssl_certificate /var/www/ssl/samecertif.crt; ssl_certificate_key /var/www/ssl/samecertif.key; ... }

o en su caso específico, tener ambos dominios atendidos por los mismos datos

server { listen 443; server_name webmail.example.com webmail.beispiel.de; # <== 2 domains root /var/www/html/docs/sslbeispieldata; ssl on; ssl_certificate /var/www/ssl/samecertif.crt; ssl_certificate_key /var/www/ssl/samecertif.key; ... }



- Tienes dos (+) certificados diferentes

El caso anterior (una dirección IP para todos los certificados) seguirá funcionando con los navegadores modernos a través de la indicación del nombre del servidor. SNI hace que el cliente (navegador) envíe el host al que quiere llegar en el encabezado de la solicitud, lo que permite que el servidor (nginx) trate con los fantasmas antes de tener que lidiar con el certificado. La configuración es la misma que la anterior, excepto que cada vhost tiene un certificado específico, crt y clave .

( nginx soporta SNI desde 0.9.8f, verifica que tu servidor nginx sea compatible con SNI )
( también, SF habla sobre SNI y soporte de navegador )

De lo contrario, si desea llegar también a navegadores más antiguos, necesita varios hosts que escuchan cada uno a direcciones IP / puertos https diferentes, por ejemplo

server { listen 1.2.3.4:443; # <== IP 1.2.3.4 server_name webmail.example.com; root /var/www/html/docs/sslexampledata; ssl on; ssl_certificate /var/www/ssl/certifIP1example.crt; ssl_certificate_key /var/www/ssl/certifIP1example.key; ... } server { listen 101.102.103:443; <== different IP server_name webmail.beispiel.de; root /var/www/html/docs/sslbeispieldata; ssl on; ssl_certificate /var/www/ssl/certifIP2beispiel.crt; ssl_certificate_key /var/www/ssl/certifIP2beispiel.key; ... }

La razón está bien explicada aquí .