Let's Encrypt免费SSL证书安装与自动更新配置

2024-07-04 09:50 技术文章 3244 阅读 分享


Let’s Encrypt 免费 SSL/TLS 证书签发教程

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

Let's Encrypt免费SSL/TSL证书签发流程

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

如果模拟续签成功完成,说明自动续签设置正确。


相关文章
更多文章 下一页