Let’s Encrypt是目前最常用的免费SSL证书颁发机构,证书有效期90天,支持自动续期。我用它给雨云服务器上的站点配过好几次,没什么坑。
先确认你有一个域名,并且域名已经解析到服务器IP。Let’s Encrypt验证域名所有权时,需要能访问到你的服务器。
安装Certbot
Certbot是官方推荐的客户端工具,用来申请和管理证书。不同系统安装方式不一样。
Ubuntu/Debian:
sudo apt update
sudo apt install certbot
CentOS/RHEL:
sudo yum install epel-release
sudo yum install certbot
如果用的是雨云的CentOS镜像,默认已经配好了epel源,直接装就行。
申请证书
有两种主流验证方式:standalone模式和webroot模式。
standalone模式:Certbot会临时启动一个80或443端口服务来响应验证。需要先停掉占用端口的Web服务。
sudo systemctl stop nginx
sudo certbot certonly --standalone -d example.com -d www.example.com
按提示输入邮箱(用于续期提醒),同意协议。成功后会输出证书路径。
webroot模式:利用你已有的Web服务器目录,Certbot会在网站根目录下放一个验证文件。不需要停服务。
sudo certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com
-w后面是你的网站根目录路径。Nginx默认在/var/www/html,雨云镜像的Nginx也常用这个路径。如果路径不对,去nginx配置里查root指令。
申请成功后,证书文件在/etc/letsencrypt/live/example.com/下:
– fullchain.pem: 证书链
– privkey.pem: 私钥
配置Nginx
在server块里加上SSL配置:
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;
# 其他配置...
}
重载Nginx:
sudo nginx -t
sudo systemctl reload nginx
如果要用HTTP自动跳转到HTTPS,再加一个server块:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
自动续期
Let’s Encrypt证书90天过期,但Certbot自带续期命令。先测试一下是否能正常续期:
sudo certbot renew --dry-run
没问题的话,设置cron定时任务自动续期。编辑crontab:
sudo crontab -e
添加一行,每天凌晨3点检查续期:
0 3 * * * /usr/bin/certbot renew --quiet && systemctl reload nginx
–quiet表示不输出日志,只有出错才发邮件。reload nginx是为了让新证书生效。
如果你用雨云,它的系统镜像里自带的cron服务默认是启动的,直接加任务就行。
常见问题
1. 提示”Domain not found”:域名解析没生效,先ping一下域名看IP对不对。
2. “Too many requests”:Let’s Encrypt有速率限制,一个域名一周内最多申请50个证书。测试时用–staging环境可以避开限制。
3. 证书续期后浏览器报错:检查nginx是否reload了,或者是不是有CDN缓存了旧证书。雨云的CDN可以手动刷新缓存。
4. 防火墙没开443端口:检查云服务商的安全组或服务器的iptables/ufw。雨云控制台的安全组规则里加上443入站。
如果服务器上有多个域名,可以一次申请包含多个域名的证书,用-d参数重复加。或者每个域名单独申请,nginx里配置不同的ssl_certificate路径。
证书文件不要手动修改,续期时会自动覆盖。私钥文件权限要设为600,防止泄露。
整体流程走下来,10分钟就能搞定。雨云的服务器配这个方案,稳定性没问题,我跑了两年没出过事。
雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



暂无评论内容