在HTTPS加密简介以及Nginx安装Let’s Encrypt免费SSL/TLS证书一文,我介绍了Linux服务器如何向Let’s encrypt申请并安装SSL证书,Let’s encrypt的证书是有有效期的,所以如果你的网站服务器是nginx,而SSL证书又快到期了,那么请看下方了解如何续期。
为Let’s Encrypt颁发的SSL证书续期
首先SSH登录Linux服务器,停止Nginx进程。
sudo service nginx stop or sudo systemctl stop nginx
然后输入下面的命令为SSL证书续期。
cd /letsencrypt
./letsencrypt-auto renew --email your-email-address --agree-tos
将your-email-address替换为你的真实邮箱地址,–agree-tos意思是agree terms of service. 以上两条命令是假设你使用git安装letsencrypt客户端。
git clone https://github.com/letsencrypt/letsencrypt
如果你使用Linux发行版的软件源安装letsencrypt客户端,那么使用下面的命令来为SSL证书续期。
letsencrypt renew --email your-email-address --agree-tos
如果续期成功,那么你会看到如下消息。
Congratulations, all renewals succeeded.
续期成功后启动nginx进程。
sudo service nginx start or sudo systemctl start nginx
如果续期后,在浏览器中打开你的网站还是会显示证书过期错误,那么你可能需要重启你的计算机,然后再用浏览器打开网站。
DVSNI Challenge Failed
如果你的网站受CDN的防护,那么在续期之前,你需要修改域名的A记录,将www域名和不带www的域名的A记录都指向你的服务器,修改后再输入续期的命令,续期成功后,把你的网站重新置于CDN的防护下。
如果续期之前不修改A记录,那么在输入续期的命令后你会看见下面的错误。
urn:acme:error:tls :: The server experienced a TLS error during domain verification :: Failed to connect to host for DVSNI challenge. Skipping.
Let’s encrypt服务器在续期时会用DVSNI来确认你拥有服务器的控制权,Let’s encrypt服务器会查找域名的A记录,得到IP地址,然后再与你现在登录的服务器IP地址作比较,如果两个IP地址相同,那么DVSNI验证就会成功,反之DVSNI验证会失败。
相关主题