nginx gunakan $ server_name di jalur ssl_certificate


33

Bagaimana saya bisa menggunakan nama variabel di jalur file?

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

Jawaban:


37

Anda tidak dapat menggunakan variabel di setiap arahan. ssl_certificatediperlakukan sebagai string literal dan merupakan salah satu dari banyak arahan di mana variabel tidak didukung.

Untuk menentukan sertifikat yang berbeda untuk host, Anda harus menulisnya secara eksplisit di blok server:

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

Jika Anda merasa tidak nyaman menduplikasi konfigurasi, buat templat dan hasilkan konfigurasi nginx menggunakan templat tersebut. Lihat juga http://nginx.org/en/docs/faq/variables_in_config.html .


6
dukungan untuk variabel dalam ssl_certificatedan ssl_certificate_keyditambahkan hari ini! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate
Andrew Brown

6

Anda dapat menggunakan variabel sejak nginx 1.15.9 (26 Feb 2019)

Perhatikan bahwa menggunakan variabel menyiratkan bahwa sertifikat akan dimuat untuk setiap jabat tangan SSL, dan ini mungkin berdampak negatif pada kinerja

Namun waspadai Perubahan dengan nginx 1.15.12 (16 Apr 2019):

Perbaikan bug: kesalahan segmentasi dapat terjadi dalam proses pekerja jika variabel digunakan dalam arahan "ssl_certificate" atau "ssl_certificate_key" dan stapel OCSP diaktifkan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.