Nginx не может использовать имена пользовательских переменных для путей к файлам сертификатов SSL, поэтому вам понадобятся блоки server
для каждого хоста, определяющего файлы. Вы можете разбить конфигурацию на модули с помощью include
server {
include conf.d/includes/common.conf;
host example1.com www.example1.com;
ssl_certificate /etc/nginx/ssl/example1.com/cert.cer;
ssl_certificate_key /etc/nginx/ssl/example1.com/privkey.cer;
ssl_trusted_certificate /etc/nginx/ssl/example1.com/ca.cer;
}
common.conf
listen 443 ssl http2;
listen [::]:443 ssl http2;
root /home/user/$host;
access_log /var/log/nginx/$host-access.log;
error_log /var/log/nginx/$host-error.log;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
Другая идея - использовать сертификат с подстановочными знаками для домена или потенциально использовать сертификат Certbot, который обслуживает несколько доменов, обновляя его каждый раз, когда должен быть добавлен новый домен (никогда не пробовал, и Certbot может иметь ограничения или полностью запрещать использование нескольких доменов)