# 生产 HTTPS 配置与证书续期策略 对应 issue:`#10 [P1][T7] 生产 HTTPS 配置与证书续期策略` ## 1. Nginx HTTPS 强制 - 参考配置:`deploy/nginx/wx_service_https.conf` - 核心策略: - `80 -> 443` 永久重定向 - 仅暴露 `443 ssl http2` - 添加 HSTS 与基础安全响应头 - 反代到后端 `127.0.0.1:8080` 部署步骤: ```bash sudo cp deploy/nginx/wx_service_https.conf /etc/nginx/conf.d/wx_service.conf sudo nginx -t sudo systemctl reload nginx ``` ## 2. 证书自动续期 脚本:`scripts/ops/renew_cert.sh` 推荐 cron(每天 03:30): ```bash 30 3 * * * CERTBOT_CMD=/usr/bin/certbot NGINX_RELOAD_CMD="systemctl reload nginx" OPS_ALERT_WEBHOOK="https://example.com/webhook" /path/to/wx_service/scripts/ops/renew_cert.sh >> /var/log/wx_service-cert-renew.log 2>&1 ``` ## 3. 续期失败与过期告警 脚本:`scripts/ops/check_cert_expiry.sh` 推荐 cron(每天 04:00): ```bash 0 4 * * * TLS_DOMAIN=api.example.com TLS_CERT_PORT=443 TLS_MIN_DAYS=15 OPS_ALERT_WEBHOOK="https://example.com/webhook" /path/to/wx_service/scripts/ops/check_cert_expiry.sh >> /var/log/wx_service-cert-check.log 2>&1 ``` 说明: - 当剩余天数 `<= TLS_MIN_DAYS` 时返回非 0 并推送告警。 - 当无法获取证书信息时也会告警并返回非 0。