外观
3.2 证书部署
约 455 字
HTTPS证书
本页对应「三、操作步骤」的 3.2,完成证书部署。返回上级:HTTPS 证书申请与续期操作指南。
前置条件
- 3.1 已完成,
certbot certificates显示证书有效。 - Nginx 站点配置可编辑,443 端口已在安全组与 ufw 放通。
- 已备份现有 Nginx 配置目录。
操作步骤
- 备份当前 Nginx 配置。
sudo cp -a /etc/nginx /root/nginx-cert.bak
sudo nginx -t- 在站点配置中引用证书,编辑
/etc/nginx/sites-available/example.com.conf,把 80 块改为跳转并追加 443 块:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
http2 on;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000" always;
}- 校验并重载。
sudo nginx -t
sudo systemctl reload nginx- 验证证书链、签发者与协议版本。
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 2>/dev/null | grep -E 'subject=|issuer='
curl -sSI https://example.com | head -n 6- 确认 HTTP 已强制跳转。
curl -sSI http://example.com | grep -i '^location'
curl -sS -o /dev/null -w 'code=%{http_code}\n' http://example.com结果确认
nginx -t通过,重载后错误日志无cannot load certificate新增。- openssl 输出的 subject 与申请域名一致,issuer 为签发机构。
- 握手输出包含 2 段以上证书,说明中间证书随链下发。
curl -I https://example.com返回 200,响应头含strict-transport-security。- http 请求返回 301,Location 指向 https。
注意事项
- 证书路径指向
/etc/letsencrypt/live下的软链,不要指向 archive 中带版本号的文件。 - 启用 OCSP stapling 要求服务器能出网访问签发机构的 OCSP 地址。
- 若前置 CDN,证书需同步上传到 CDN,否则边缘节点仍返回旧证书。
- 部署完成后立刻确认服务状态,失败时按备份还原再排查。