Respuestas:
No puede usar variables en todas las directivas. ssl_certificate
se 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 .
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.
ssl_certificate
yssl_certificate_key
fue agregado hoy! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate