Appearance
使用 Nginx ACME 自动申请 SSL 证书
WARNING
如果 Nginx 位于容器中,必需设法保证对应的 HTTP-01 质询请求被传递给容器中的 Nginx HTTP 端口。
1. 检查 Nginx 版本
在官方源中, nginx-acme 要求 Nginx 1.29.0+
bash
nginx -v如果 Nginx 版本小于 1.29.0,你需要设法更新 Nginx,或搜索其它方法(如使用 Certbot 或 acme.sh )
2. 安装 nginx-acme 模块
假设我们使用 Debian。
bash
sudo apt install nginx-module-acme3. 配置 ACME
假设我们用来申请证书的邮箱是 xxx@xxx.xxxx(请换成你的真实邮箱)。
编辑 /etc/nginx/nginx.conf,在文件开头导入 ngx_http_acme_module:
perl
load_module modules/ngx_http_acme_module.so;
user nginx;
worker_processes auto;
worker_rlimit_nofile 1024;继续编辑 http 部分的配置,设置 ACME 服务器和共享缓存。此处假设我们使用 Let's Encrypt:
perl
# ...
http {
# ...
acme_issuer letsencrypt {
uri https://acme-v02.api.letsencrypt.org/directory;
state_path /var/cache/nginx/acme-letsencrypt;
accept_terms_of_service;
}
acme_shared_zone zone=ngx_acme_shared:1M;
resolver 1.1.1.1 ipv6=off valid=5s;
# 可自行更换 1.1.1.1 为其它可用的 DNS 服务器,如果 Nginx 位于容器中,可以填写容器所在网络的 DNS。
# ...
}4. 验证 Nginx 配置并重启 Nginx
bash
sudo nginx -t
sudo systemctl restart nginx