nginx usa $ server_name no caminho ssl_certificate


33

Como posso usar um nome de variável no caminho do arquivo?

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

Respostas:


37

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 .


6
suporte para variáveis ssl_certificatee ssl_certificate_keyfoi adicionado hoje! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate
Andrew Brown

6

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.