Let’s Encrypt 证书续签失败“Could not get nonce, let’s try again“的解决办法

Let’s Encrypt 证书续签失败“Could not get nonce, let’s try again“的解决办法

老王今天看到自己也有一个网站出现了 Let’s Encrypt 证书续签失败问题,看 acme.sh 的续签日志,发现错误都是 timeout,详细的信息是 Could not get nonce , let’s try again 。下面就分享下解决方法。

原文地址:

一、问题描述

老王服务器的环境是 LNMP ,默认的 ssl 证书是用 acme.sh 申请并管理 Let’s Encrypt 证书。

查看 acme.sh.log(路径在 /usr/local/acme.sh ),错误信息如下:

[Wed Jul 7 00:58:49 CST 2021] Could not get nonce, let’s try again.
[Wed Jul 7 00:58:51 CST 2021] GET
[Wed Jul 7 00:58:51 CST 2021] url=’ acme-v01.api.letsencrypt.org
[Wed Jul 7 00:58:51 CST 2021] timeout=
[Wed Jul 7 00:58:51 CST 2021] _CURL=’curl -L –silent –dump-header /usr/local/acme.sh/http.header -g ‘
[Wed Jul 7 00:58:51 CST 2021] ret=’0’
[Wed Jul 7 00:58:51 CST 2021] Could not get nonce, let’s try again.

似乎是访问 acme-v01.api.letsencrypt.org ’ 这个链接超时,之后返回了 Could not get nonce, let’s try again 的错误信息。

于是老王尝试了用 acme.sh 手动续签 SSL 证书 ,同样返回了错误,并且错误信息更模糊: Sleep 10 and retry

二、解决办法

首先分享解决方法:更新 LNMP 、更新 acme.sh -> 删除已经过期的 SSL 证书 -> 重新生成 SSL 证书。

1、更新 LNMP

目前 LNMP 最新版本是 1.8,并且增加了 BuyPass、ZeroSSL SSL 证书。

首先下载最新的 1.8 版本:

wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8

从旧版本更新成 1.8 版本:

upgrade1.x-1.8.sh

详细介绍:《 LNMP 1.8:增加 PHP 8.0 支持,增加 BuyPass、ZeroSSL SSL 证书,附安装和升级方法

2、更新 acme.sh

这个在《 解决 acme.sh 更新 Let’s Encrypt 证书失败,证书过期问题 》已经分享过升级方法了。

1、官方一键升级脚本

acme.sh --upgrade

2、手动升级方法

mkdir temp && git clone https://github.com/acmesh-official/acme.sh.git temp
mv acme.sh acme.sh_backup && mv temp/acme.sh .

3、删除过期的 SSL 证书

LNMP 脚本下的 SSL 证书默认是在 /usr/local/nginx/conf/ssl/ ,删除对应的 SSL 证书。

4、重新生成 SSL 证书

最简单的方式就是用 lnmp 先删除站点( lnmp del ),之后再添加对应的站点( lnmp add )。

经过这 4 步,这个“Could not get nonce, let’s try again”续签失败的问题就成功解决了。

发布于 2021-07-30 19:53

文章被以下专栏收录