Antworten:
Sie können nicht in jeder Direktive Variablen verwenden. ssl_certificatewird als wörtliche Zeichenfolge behandelt und ist eine der vielen Anweisungen, bei denen Variablen nicht unterstützt werden.
Um unterschiedliche Zertifikate für Hosts anzugeben, müssen Sie diese explizit in einen Serverblock schreiben:
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;
# ...
}
# ...
Wenn Sie Probleme beim Duplizieren der Konfiguration haben, erstellen Sie Vorlagen und generieren Sie die Nginx-Konfiguration mit diesen Vorlagen. Siehe auch http://nginx.org/en/docs/faq/variables_in_config.html .
Sie können Variablen seit nginx 1.15.9 (26. Februar 2019) verwenden.
Beachten Sie, dass die Verwendung von Variablen bedeutet, dass für jeden SSL-Handshake ein Zertifikat geladen wird, was sich negativ auf die Leistung auswirken kann
Aber sich bewusst sein Änderungen mit nginx 1.15.12 (16. April 2019):
Bugfix: Ein Segmentierungsfehler kann in einem Worker-Prozess auftreten, wenn Variablen in den Direktiven "ssl_certificate" oder "ssl_certificate_key" verwendet wurden und das OCSP-Heften aktiviert wurde.
ssl_certificateundssl_certificate_keywurde heute hinzugefügt! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate