多个HTTPS(certbot)域的一个nginx配置
现在我对许多域使用一个nginx配置多个HTTPS(certbot)域的一个nginx配置,nginx,certbot,Nginx,Certbot,现在我对许多域使用一个nginx配置 server { listen 80 default_server; listen [::]:80 default_server; root /home/user/default; index index.php; server_name _; location / { try_files $uri $uri/ /index.ph
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/user/default;
index index.php;
server_name _;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
我想将站点传输到https协议,将使用CertBot
是否也可以对所有域使用一个配置?如何为不同的域指定密钥路径?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可能有限制或完全不允许多个域)