nginx використовувати $ server_name на шляху до ssl_certificate


33

Як я можу використовувати ім'я змінної у шляху до файлу?

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

Відповіді:


37

Ви не можете використовувати змінні у кожній директиві. ssl_certificateтрактується як буквальний рядок і є однією з багатьох директив, де змінні не підтримуються.

Щоб вказати різні сертифікати для хостів, потрібно явно записати їх у серверний блок:

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

Якщо вам неприємно дублювати конфігурацію, створіть шаблони та згенеруйте конфігурацію nginx за допомогою цих шаблонів. Дивіться також http://nginx.org/en/docs/faq/variables_in_config.html .


6
підтримка змінних в ssl_certificateі ssl_certificate_keyбула додана сьогодні! nginx.org/uk/docs/http/ngx_http_ssl_module.html#ssl_certificate
Ендрю Браун

6

Ви можете використовувати змінні з nginx 1.15.9 (26 лютого 2019)

Зауважте, що використання змінних означає, що сертифікат буде завантажений для кожного рукостискання SSL, і це може негативно вплинути на продуктивність

Але будьте в курсі змін із nginx 1.15.12 (16 квітня 2019):

Виправлення: в робочому процесі може виникнути помилка сегментації, якщо змінні були використані в директивах "ssl_certificate" або "ssl_certificate_key" та включення зшивання OCSP.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.