自动续签SSL证书
现在的网站几乎都要HTTPS,主流浏览器对HTTP网站会显示不安全警告。微信等APP内访API访问更是强制要求HTTPS。免费HTTPS证书有效期只有三个月,如果到期忘记更换证书,将不可访问。使用certbot证书机器人,不仅可以申请免费HTTPS证书,还能自动将证书配置到WEB服务,自动续签。
安装使用
主流Linux软件源都收录了certbot,我用的Debian操作系统,用以下命令安装:
apt install certbot python3-certbot python3-certbot-nginx
安装 python3-certbot-nginx 可以帮我们自动配置到nginx。Ubuntu操作系统安装方式同上。
certbot是从 Let's Encrypt 签名的证书,以下是常用命令:
- 申请证书
# 如果有多个域名,可以指定多个 -d 参数
certbot --nginx -d www.test.com -d aaa.test.com -d bbb.test.com
# 多个域名也可以用英文逗号隔开
certbot --nginx -d www.test.com,aaa.test.com,bbb.test.com
--nginx 申请证书后自动配置到nginx
-d 申请证书的域名,支持 *.test.com 匹配任意域名
证书存储在 /etc/letsencrypt/live 目录下
- 查看证书
certbot certificates
返回所有申请的证书
- 已有证书增加域名
certbot --nginx -d www.test.com,ccc.test.com
如果www.test.com证书已存在。certbot会在该证书中加上ccc.test.com域名
- 删除证书
certbot delete -d 域名列表
自动续签
查看certbot服务运行状态
systemctl status certbot
注意保证服务在启用中才会自动续签。
证书申请失败
certbot申请证书不成功,注意看返回日志。一般是以下原因引起:
- 域名未做解析,或者申请证书的服务器不是域名指向的服务器
- 域名未备案,被域名系统拦截
- 申请通配符域名,如:*.test.com 。带 * 的域名需要做DNS解析
其他文章