2021年5月2日星期日

Let’s Encrypt不自动续期怎么办?免费SSL证书快速续期

原文链接:https://www.chenweiliang.com/cwl-1199.html


上次解决了申请安装Let’s Encrypt获取失败Error Message: AutoSSL Issue Failed的DNS问题之后,这个免费SSL证书又有些问题需要解决了。


CWP控制面板本来似乎已设置好了Let’s Encrypt证书到期前自动更新续期的,不料昨天Let’s Encrypt不自动续期更新了,所以造成SEO流量大幅下滑,幸好解决好后就能恢复了。


什么是 Let’s Encrypt?


Let’s Encrypt不自动续期怎么办?免费SSL证书快速续期


Let’s Encrypt是一个由非营利性组织互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA)。


简单的说,借助Let’s Encrypt颁发的证书可以为我们的网站免费启用HTTPS(SSL/TLS) 。


Let’s Encrypt免费证书的签发/续签都是脚本自动化的,Let’s Encrypt官方推荐使用Certbot客户端来签发证书。


以下是如何申请 Let’s Encrypt免费SSL证书的教程 ▼



什么是Let’s Encrypt 通配符证书?


在没有出现通配符证书之前,Let’s Encrypt 仅支持2种证书:


  1. 单域名证书:证书仅仅包含一个主机。

  2. SAN 证书:也称为域名证书,一张证书可以包括多个主机(Let’s Encrypt 限制是 20)。

对于个人用户来说,由于主机并不是太多,所以使用 SAN 证书完全没有问题,但是对于大公司来说有一些问题:


  1. 子域名非常多,而且过一段时间可能就要使用一个新的主机。

  2. 注册域也非常多。

对于大企业来说,SAN 证书可能并不能满足需求,而所有的主机全部包含在一张证书中,使用 Let’s Encrypt 证书(限制20)是无法满足的。


通配符证书就是证书中可以包含一个通配符,比如 *.example.com, *.example.cn,用 * 号来自动


如何申请Let’s Encrypt通配符证书?


为了实现通配符证书,Let’s Encrypt 对 ACME 协议的实现进行了升级,只有 v2 协议才能支持通配符证书。


也就是说任何客户端只要支持 ACME v2 版本,就可以申请通配符证书了。


下载Certbot-Auto


wget https://dl.eff.org/certbot-auto  chmod a+x certbot-auto  ./certbot-auto --version

Let’s Encrypt通配符证书脚本



git clone https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au cd certbot-letencrypt-wildcardcertificates-alydns-au chmod 0777 au.sh

Let’s Encrypt通配符证书到期定时续约脚本


这里的脚本是nginx 编译安装或者通过Docker 安装的服务器,通过宿主机代理或者负载均衡主机代理https,自动备份SSL证书,重启Nginx代理服务器。


  • 注:脚本实际使用的依然是 ./certbot-auto renew

#!/usr/bin/env bash

cmd="$HOME/certbot-auto"
restartNginxCmd="docker restart ghost_nginx_1"
action="renew"
auth="$HOME/certbot/au.sh php aly add"
cleanup="$HOME/certbot/au.sh php aly clean"
deploy="cp -r /etc/letsencrypt/ /home/pi/dnmp/services/nginx/ssl/ && $restartNginxCmd"

$cmd $action \
--manual \
--preferred-challenges dns \
--deploy-hook \
"$deploy"\
--manual-auth-hook \
"$auth" \
--manual-cleanup-hook \
"$cleanup"

加入 crontab

编辑文件:/etc/crontab 


#证书有效期<30天才会renew,所以crontab可以配置为1天或1周 0 0 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /home/pi/crontab.sh

CWP服务器配置重建


以下是CWP重建nginx / apache服务器的步骤:


第 1 步:在CWP控制面板左侧点击 WebServer Settings → Select WebServers ▼


在CWP控制面板左侧点击:WebServer Settings → Select WebServers 





第 2 步:选择 Nginx & Apache ▼


第 2 步:CWP控制面板选择 Nginx & Apache


第 3 步:点击底部“Save & Rebuild Configuration”按钮,进行保存和重建配置。


  • 刷新网站,将看到SSL证书的到期日期已更新。

扩展阅读:






欢迎转载《Let’s Encrypt不自动续期怎么办?免费SSL证书快速续期

欢迎分享本文链接:https://www.chenweiliang.com/cwl-1199.html


网站地址:https://www.chenweiliang.com/



欲获取更多资讯内幕和秘技,欢迎进入Telegram频道:https://www.chenweiliang.com/go/tgchannel

没有评论:

发表评论