Let’s Encrypt 免费 SSL/TLS 证书签发教程
Let’s Encrypt 是一家免费、开放、自动化的证书颁发机构 (CA),每次签发的证书有90天使用期,官方推荐使用 ACME 协议来验证您对给定域名的控制权并向您颁发证书。此外,Let’s Encrypt 实现了证书颁发和更新的全自动化。

Let’s Encrypt免费SSL/TSL证书签发流程
1. 安装客户端 certbot
yum install certbot -y
2. 签发证书
certbot certonly --webroot --agree-tos -v -t --email youremail@gmail.com -w /Data/iewb.net/public_html/ -d iewb.net -d www.iewb.net
生成的证书所在目录:
/etc/letsencrypt/live/iewb.net/
3. Apache 使用 Let’s Encrypt 生成的证书
以 Apache 为例,使用 Let’s Encrypt 生成的证书配置网站:
ServerAdmin web@iewb.net ServerName iewb.net ServerAlias www.iewb.net SSLEngine on SSLCertificateFile /etc/letsencrypt/live/iewb.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/iewb.net/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/iewb.net/chain.pem DocumentRoot /Data/iewb.net/public_html/ ErrorLog /Data/iewb.net/logs/error.log CustomLog /Data/iewb.net/logs/access.log combined
4. 更新证书
证书快到期时更新证书命令:
certbot renew
更新的是快要到期的证书(30天内),也就是说如果离到期时间还远就不会更新,所以刚生成的证书无论运行多少次命令都不会更新。另外,更新证书时你的 Apache 或 NGINX 必须是运行中的,不然无法更新。
5. 自动更新证书
新建一个 cron 作业添加到现有 crontab 文件中:
30 2 */10 * * /usr/bin/certbot renew >> /root/log/certbot-renew.log
示例设置成每10天更新一次证书,当然你也可以设置成每天更新一次。不推荐设置成每个月更新一次,因为有的月有可能31天,当执行自动任务时到期时间有可能是30天或31天,非30天内到期证书是不会更新的。
6. 模拟续签测试
可以使用 Certbot 的 renew 命令的 --dry-run 选项来模拟续签过程,而不实际更新证书:
certbot renew --dry-run
如果模拟续签成功完成,说明自动续签设置正确。