nginx używa $ nazwa_serwera na ścieżce certyfikatu ssl


33

Jak mogę użyć nazwy zmiennej w ścieżce pliku?

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

Odpowiedzi:


37

Nie można używać zmiennych w każdej dyrektywie. ssl_certificatejest traktowany jak ciąg literalny i jest jedną z wielu dyrektyw, w których zmienne nie są obsługiwane.

Aby określić różne certyfikaty dla hostów, musisz jawnie zapisać je w bloku serwera:

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;
    # ...
}
# ...

Jeśli czujesz się niekomfortowo powielając konfigurację, utwórz szablony i wygeneruj konfigurację nginx przy użyciu tych szablonów. Zobacz także http://nginx.org/en/docs/faq/variables_in_config.html .


6
obsługa zmiennych w ssl_certificatei ssl_certificate_keyzostała dodana już dziś! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate
Andrew Brown

6

Możesz używać zmiennych od wersji nginx 1.15.9 (26 lutego 2019)

Pamiętaj, że użycie zmiennych oznacza, że ​​certyfikat będzie ładowany dla każdego uzgodnienia SSL, co może mieć negatywny wpływ na wydajność

Pamiętaj jednak o zmianach w wersji nginx 1.15.12 (16 kwietnia 2019 r.):

Poprawka: błąd segmentacji może wystąpić w procesie roboczym, jeśli zmienne zostały użyte w dyrektywach „ssl_certificate” lub „ssl_certificate_key” i włączone było zszywanie OCSP.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.