HTTP 明文传输,中间人抓包一抓一个准。HTTPS 是标配,但买证书一年几百块。Let's Encrypt 提供完全免费的 SSL 证书,配合 Certbot 自动续期,一劳永逸。
安装 Certbot
# Ubuntu/Debian
apt update && apt install certbot python3-certbot-nginx -y
# CentOS 7
yum install certbot python2-certbot-nginx -y申请证书
一句命令搞定,Certbot 自动改 Nginx 配置:
certbot --nginx -d blog.zjunwei.com -d www.zjunwei.com它会问你两个问题:
- 邮箱(证书快过期时通知)
- 是否自动跳转 HTTPS(选 2,强制跳转)
完成后访问 https://blog.zjunwei.com,地址栏直接变绿锁。
多域名一张证书
certbot --nginx -d zjunwei.com -d www.zjunwei.com -d blog.zjunwei.com自动续期
Let's Encrypt 证书有效期 90 天。Certbot 安装时会自动创建定时任务:
systemctl list-timers | grep certbot
certbot renew --dry-run正常情况完全不用管,到期前 30 天自动续。
泛域名证书
需要 *.zjunwei.com 泛域名证书,得用 DNS 验证:
certbot certonly --manual --preferred-challenges dns \
-d "*.zjunwei.com" -d "zjunwei.com"执行后会给你一条 TXT 记录,去域名 DNS 后台添加,等几分钟生效后按回车。
常见坑
| 问题 | 解决 |
|---|---|
| 80 端口被墙 | 换 DNS 验证方式 |
| Nginx 配置路径不对 | certbot --nginx --nginx-server-root /usr/local/nginx/conf |
| 续期失败不通知 | 加 --deploy-hook "nginx -s reload" |
总结
HTTPS 是搜索引擎排名因素之一,也是用户信任的基础。Let's Encrypt + Certbot 这套组合从安装到上线不超过五分钟,全自动续期完全不用维护。别让裸 HTTP 成为你网站最短的板。