如何为Let’s Encrypt颁发的SSL证书续期

之前的一篇文章,我介绍了Linux服务器如何向Let’s encrypt申请并安装SSL证书.Let’s encrypt的证书有效期为90天.现在Let’s Encrypt证书的自动续期还不支持Nginx.所以如果你的网站服务器是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验证会失败.

为这篇文章评分
[Total: 6 Average: 2.8]

Leave a Reply

Your email address will not be published.

The maximum upload file size: 2 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here