背景
# 阿里云 免费SSL数字证书(有效期从12个月缩至3个月)公告:
https://help.aliyun.com/zh/ssl-certificate/product-overview/notice-on-adjustment-of-service-policies-for-free-certificates
阿里云提供的免费SSL证书,有效期仅三个月,每三月便需手动更新,运维繁琐,实难忍受。鉴于此,寻找更为便捷、高效的解决方案。毕竟,免费的SSL证书亦能确保安全无虞,追求便捷且持续的安全体验,方为明智之选。
解决
Let’s Encrypt堪称免费证书之典范,备受各类设备支持,且可轻松申请通配证书。其申请步骤如下:
# install snapd:
yum install snapdsystemctl enable --now snapd.socketln -s /var/lib/snapd/snap /snap
# install certbot:
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
# 申请证书:
certbot certonly --manual --preferred-challenges dns
a、执行相关命令后,将启动证书申请流程,具体步骤如下:
b、若系统提示输入邮箱,请按照指引填写您的邮箱地址;
c、根据提示输入所需的域名,若需添加多个域名,请用空格进行分隔;
注意:例如youchang.net和blog.youchang.net被视为两个不同的域名。若您希望使用通配符证书,请输入如*.youchang.net的格式;
d、系统会要求您进行DNS验证,请按照指示在DNS中添加一个TXT记录;
注意:若连续超过5次验证失败,服务器将在接下来的五个小时内无法继续申请证书;e、验证成功后,系统将生成对应的证书文件。
# 查询证书:
certbot certificates
# 使用证书
certbot
在生成证书时会产生多个文件,但对于 Nginx 等常见的 Web 服务器而言,通常仅需关注两个核心文件:证书文件(通常以 .crt
或 .pem
结尾)和私钥文件(以 .key
结尾, 本文是:privkey.pem)。这两个文件是确保服务器与客户端之间安全通信的关键所在。
* fullchain.pem:证书文件,兼容主流web server;
* privkey.pem:秘钥文件;
#自动更新证书
未曾想到,certbot竟有此妙用。其原理亦非高深莫测,对于已验证的域名,certbot可自动为其更新证书。只需在服务器上轻启一行命令,便可让安全守护无间断。
certbot renew --dry-run
# crontab -e 添加计划任务
0 12 * * * /usr/bin/certbot renew --quiet