Respostas:
Você não pode usar variáveis em todas as diretivas. ssl_certificate
é tratado como uma sequência literal e é uma das muitas diretivas em que as variáveis não são suportadas.
Para especificar certificados diferentes para hosts, você deve escrevê-lo explicitamente em um bloco 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;
# ...
}
# ...
Se você se sentir desconfortável ao duplicar a configuração, crie modelos e gere a configuração nginx usando esses modelos. Veja também http://nginx.org/en/docs/faq/variables_in_config.html .
Você pode usar variáveis desde o nginx 1.15.9 (26 de fevereiro de 2019)
Observe que o uso de variáveis implica que um certificado será carregado para cada handshake SSL e isso pode ter um impacto negativo no desempenho
Mas esteja ciente das alterações com o nginx 1.15.12 (16 de abril de 2019):
Correção de bug: uma falha de segmentação pode ocorrer em um processo de trabalho se as variáveis forem usadas nas diretivas "ssl_certificate" ou "ssl_certificate_key" e o grampeamento OCSP estiver ativado.
ssl_certificate
essl_certificate_key
foi adicionado hoje! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate