Как я могу использовать имя переменной в пути к файлу?
ssl_certificate /home/ec2-user/.certificados/$server_name.crt;
ssl_certificate_key /home/ec2-user/.certificados/$server_name.key;
Вы не можете использовать переменные в каждой директиве. 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 .
ssl_certificate
иssl_certificate_key
была добавлена сегодня! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificateВы можете использовать переменные начиная с nginx 1.15.9 (26 февраля 2019)
Но помните об изменениях в nginx 1.15.12 (16 апреля 2019 г.):
источник