Odpowiedzi:
Nie można używać zmiennych w każdej dyrektywie. ssl_certificate
jest 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 .
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.
ssl_certificate
issl_certificate_key
została dodana już dziś! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate