Let’s Encrypt是目前最主流的免费SSL证书提供商,证书有效期90天,支持自动续期。我平时用雨云的服务器做测试,配置低但稳定,跑certbot完全没问题。下面直接说怎么搞。
环境:Ubuntu 22.04,Nginx。其他系统大同小异。
第一步:安装Certbot
Certbot是Let’s Encrypt官方推荐的客户端。别用系统自带的旧版本,直接加PPA装新的。
sudo apt update
sudo apt install snapd
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
snap版本会自动更新,省心。如果不想用snap,也可以用apt装python3-certbot-nginx,但版本可能老。
步:申请证书
假设你的域名是example.com,Nginx已经配好server block,能正常访问80端口。Certbot需要验证你对域名的控制权,默认用HTTP-01挑战,就是Let’s Encrypt服务器访问你的http://example.com/.well-known/acme-challenge/下的文件。
sudo certbot --nginx -d example.com -d www.example.com
-d参数可以多个,把需要证书的域名都列上。Certbot会自动检测Nginx配置,修改server block添加SSL相关指令。它会问你是否重定向HTTP到HTTPS,选2(重定向)或者1(不重定向),我一般选2。
如果不想Certbot改Nginx配置,只用–webroot模式:
sudo certbot certonly --webroot -w /var/www/example.com -d example.com
-w后面是网站根目录,证书会生成到/etc/letsencrypt/live/example.com/下。
第三步:验证证书
申请成功后,证书文件位置:
– fullchain.pem:完整证书链
– privkey.pem:私钥
Nginx配置里Certbot会自动添加类似这样的内容:
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
检查证书是否生效:
curl -I https://example.com
或者浏览器打开,看小锁图标。
第四步:自动续期
Let’s Encrypt证书90天过期,必须续期。Certbot会安装一个systemd timer,默认每天检查两次,到期前30天自动续期。
验证定时任务是否正常:
sudo systemctl status certbot.timer
手动测试续期:
sudo certbot renew --dry-run
这个命令不会真的续期,只是模拟过程,检查是否有问题。如果报错,一般是80端口没通或者域名解析不对。
如果你用了Nginx反向代理、CDN或者非标准端口,可能需要DNS-01挑战。比如用Cloudflare的DNS验证:
sudo certbot certonly --manual --preferred-challenges dns -d example.com
它会让你去DNS解析加TXT记录,验证完删掉。这种方式不需要80端口,但手动操作麻烦,建议用API自动搞,比如certbot-dns-cloudflare插件。
第五点:常见问题
1. 申请时报错”too many certificates already issued” — Let’s Encrypt有速率限制,每周最多50个证书。可以用staging环境测试:
sudo certbot certonly --staging -d example.com
2. 证书续期失败 — 检查防火墙是否放行80端口,Nginx是否正常运行。雨云的服务器默认安全组要开80和443。
3. 多域名合并到一个证书 — Certbot默认支持SAN,多个-d参数即可。一个证书最多100个域名。
4. 通配符证书 — 用DNS-01挑战:
sudo certbot certonly --manual --preferred-challenges dns -d *.example.com
说一句,别手动续期。配好certbot.timer后就不用管了,除非换服务器或者改域名。雨云那台1核1G的机器跑了半年,证书自动续了两次,没出过问题。
雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



暂无评论内容