Let’s Encrypt是目前最主流的免费SSL证书颁发机构,证书有效期90天,支持自动续期。我平时在雨云服务器上部署服务,基本都用它搞定HTTPS。
前置条件
– 一个域名(假设用 example.com)
– 服务器能通过80或443端口对外访问(Let’s Encrypt验证域名所有权时需要)
– 服务器已安装Python和git(大部分Linux发行版自带)
安装Certbot
Certbot是Let’s Encrypt官方推荐的客户端工具,支持Nginx、Apache、独立模式等。
Ubuntu/Debian:
sudo apt update
sudo apt install certbot -y
CentOS/RHEL:
sudo yum install epel-release -y
sudo yum install certbot -y
申请证书
如果服务器上已经有Web服务在跑(比如Nginx),用webroot模式,不需要停服务:
sudo certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com
`-w`指定网站根目录,`-d`指定域名,可以多个。
如果服务器上没跑Web服务,用standalone模式,certbot会自己起一个临时HTTP服务:
sudo certbot certonly --standalone -d example.com -d www.example.com
注意standalone模式需要80端口未被占用,否则报错。
证书文件位置
申请成功后,证书存放在`/etc/letsencrypt/live/example.com/`目录下:
– `fullchain.pem` – 完整证书链(服务端证书+中间证书)
– `privkey.pem` – 私钥(务必保护好,权限设为600)
配置Nginx
编辑站点配置:
server {
listen 443 ssl;
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;
# 其他配置...
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
配置完重载Nginx:
sudo nginx -t
sudo systemctl reload nginx
自动续期
Let’s Encrypt证书90天过期,需要续期。Certbot自带续期命令:
sudo certbot renew
这个命令会检查所有证书,距离过期不足30天的才会续期。建议加入cron定时任务:
sudo crontab -e
添加一行:
0 3 * * * /usr/bin/certbot renew --quiet && systemctl reload nginx
每天凌晨3点检查续期,续期成功后重载Nginx。`–quiet`不输出日志,除非出错。
验证
用浏览器访问`https://example.com`,地址栏显示小锁图标就对了。
或者用命令行:
curl -I https://example.com
返回头里能看到`HTTP/2 200`和`SSL certificate verify ok`。
常见问题
1. 申请时提示`Failed to connect to 80 port`:检查防火墙是否开放80端口,或者端口被其他进程占用。
2. 续期失败:确认`/var/www/html`路径在webroot模式下仍然可访问,或者standalone模式下80端口空闲。
3. 证书过期没自动续:检查cron是否正常运行,`systemctl status cron`查看服务状态。
为什么选Let’s Encrypt
免费、自动化、被主流浏览器信任。雨云的服务器配合Let’s Encrypt,几分钟就能搞定HTTPS。如果域名解析在雨云,直接用它的DNS插件还能做通配符证书,连子域名都覆盖了。
不花钱解决HTTPS,就这么简单。
雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



暂无评论内容