http {
# 必须配置 resolver 以支持 ACME 服务器的 DNS 解析
resolver 8.8.8.8 valid=300s;
resolver_timeout 5s;
# 定义 ACME 客户端(使用 Let's Encrypt 生产环境)
acme_client letsencrypt https://acme-v02.api.letsencrypt.org/directory
email=admin@example.com # 你的联系邮箱(用于 Let's Encrypt 通知)
challenge=http # 使用 HTTP-01 验证(默认)
key_type=ecdsa # 密钥类型:ecdsa(推荐,更高效)或 rsa
renew_before_expiry=30d # 到期前 30 天开始续期(默认值,可调整)
enabled=on; # 启用自动更新(默认 on)
# HTTP 服务块:用于处理 ACME HTTP-01 验证挑战(.well-known/acme-challenge/)
# Angie 的 http_acme 模块会自动处理验证路径,无需手动 location 配置
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
# 可选:强制 HTTP 到 HTTPS 重定向(验证完成后生效)
return 301 https://$host$request_uri;
}
# HTTPS 服务块:主站点,使用自动获取的证书
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com www.example.com;
# 使用 ACME 模块动态变量加载证书和密钥
ssl_certificate $acme_cert_letsencrypt;
ssl_certificate_key $acme_cert_key_letsencrypt;
# 启用 ACME 证书申请和管理(关联客户端名称 letsencrypt)
acme letsencrypt;
# 你的站点根目录和其他配置
root /data/wwwroot/example.com;
index index.html index.htm;
location / {
# 站点正常逻辑
try_files $uri $uri/ =404;
}
# 其他 SSL 优化配置(推荐)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
}
}
更多配置可以查看此帖:NGINX 基本配置与泛域名、SSL 配置