Nginx 配置 HTTPS 与 Let’s Encrypt 证书自动续签教程
本文来自「码农资讯网」,专注 DevOps、PHP、数据库、系统运维干货。访问:www.codesou.cn,学习更多实战技巧。
一、为什么启用 HTTPS?
开启 HTTPS(即使用 SSL/TLS)带来的好处包括:
🔒 数据传输加密,防止中间人攻击
✅ 提升搜索引擎排名(Google/Bing 优先展示 HTTPS 站点)
🧾 提高用户信任度和品牌形象
🛡️ 支持 HTTP/2,加快网站加载速度
二、准备工作
在开始之前,你需要:
一台公网服务器(如 CentOS、Ubuntu)
一个已解析到服务器 IP 的域名(如:
www.codesou.cn
)安装好 Nginx
安装 Certbot 工具(Let’s Encrypt 官方推荐的客户端)
三、安装 Certbot
以 Ubuntu/Debian 为例:
sudo apt update sudo apt install certbot python3-certbot-nginx -y
CentOS 用户:
sudo yum install epel-release -y sudo yum install certbot python3-certbot-nginx -y
四、申请 SSL 证书并自动配置 Nginx
sudo certbot --nginx -d www.codesou.cn -d codesou.cn
解释:
--nginx
表示使用 Nginx 插件自动配置-d
指定域名,可以多个
成功后,Certbot 会自动修改你的 Nginx 配置文件并添加 HTTPS 支持。
五、自动续签配置(Let’s Encrypt 证书有效期仅90天)
Certbot 默认会创建系统定时任务,但你也可以手动测试自动续签:
sudo certbot renew --dry-run
定时自动续签推荐配置如下(Ubuntu 默认已有 cronjob):
0 2 * * * /usr/bin/certbot renew --quiet
确保 Nginx 支持自动 reload:
--deploy-hook "systemctl reload nginx"
完整自动续签命令:
sudo certbot renew --quiet --deploy-hook "systemctl reload nginx"
六、手动配置 Nginx 支持 HTTPS(可选)
若你手动申请了证书,可这样配置 Nginx:
server { listen 443 ssl http2; server_name www.codesou.cn; ssl_certificate /etc/letsencrypt/live/www.codesou.cn/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.codesou.cn/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; root /www/wwwroot/codesou; index index.html index.php; }
同时配置 HTTP 自动跳转到 HTTPS:
server { listen 80; server_name www.codesou.cn; return 301 https://$server_name$request_uri; }
七、常见问题排查
问题 | 解决方案 |
---|---|
80 端口被占用 | 停用 Apache 或其他服务 |
“Too many certificates already issued” | 检查是否频繁申请(限制:每周5次) |
自动续签失败 | 检查域名解析、定时任务是否正常 |
八、小结
使用 Let’s Encrypt 免费申请证书是当前最主流方案
Certbot 可以自动安装证书并配置 Nginx
建议强制 HTTPS 跳转并使用 HTTP/2 提升加载速度
定期测试自动续签是否有效,避免证书过期
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!