nginx usa $ server_name en la ruta ssl_certificate


33

¿Cómo puedo usar un nombre de variable en la ruta del archivo?

ssl_certificate /home/ec2-user/.certificados/$server_name.crt;
ssl_certificate_key /home/ec2-user/.certificados/$server_name.key;

Respuestas:


37

No puede usar variables en todas las directivas. ssl_certificatese trata como una cadena literal y es una de las muchas directivas donde las variables no son compatibles.

Para especificar diferentes certificados para hosts, debe escribirlo explícitamente en un bloque de servidor:

server {
    server_name example.com;
    ssl_certificate /home/ec2-user/.certificados/example.com.crt;
    ssl_certificate_key /home/ec2-user/.certificados/example.com.key;
    # ...
}
server {
    server_name example.net;
    ssl_certificate /home/ec2-user/.certificados/example.net.crt;
    ssl_certificate_key /home/ec2-user/.certificados/example.net.key;
    # ...
}
# ...

Si se siente incómodo duplicando la configuración, cree plantillas y genere la configuración nginx usando esas plantillas. Ver también http://nginx.org/en/docs/faq/variables_in_config.html .


66
soporte para variables en ssl_certificatey ssl_certificate_keyfue agregado hoy! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate
Andrew Brown

6

Puede usar variables desde nginx 1.15.9 (26 de febrero de 2019)

Tenga en cuenta que el uso de variables implica que se cargará un certificado por cada protocolo de enlace SSL, y esto puede tener un impacto negativo en el rendimiento

Pero tenga en cuenta los cambios con nginx 1.15.12 (16 de abril de 2019):

Corrección de error: podría producirse un error de segmentación en un proceso de trabajo si se usaran variables en las directivas "ssl_certificate" o "ssl_certificate_key" y se habilitara el engrapado OCSP.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.