军哥的LNMP脚本从LNMP1.5开始支持Let'sEncrypt通配符/泛域名SSL证书申请,并且支持自动续期,最近两天发现有一个站点的SSL证书马上就要过期了也没自动更新,手动执行acme.sh脚本提示出错。具体错误信息如下:
[Tue May 5 05:46:56 CST 2020] Adding txt value: mTqmWgwljvaa6wKuBzsmNmkT-HbadHznIceza1q9Q1g for domain: _acme-challenge.duoluodeyu.cn
[Tue May 5 05:46:57 CST 2020] invalid domain
[Tue May 5 05:46:57 CST 2020] Error add txt for domain:_acme-challenge.duoluodeyu.cn
[Tue May 5 05:46:57 CST 2020] Please check log file for more details: /usr/local/acme.sh/acme.sh.log
Let's Encrypt SSL Certificate create failed!

根据脚本提示,acme.sh需要调用域名DNS解析服务商的api接口,添加一条txt记录进行域名所有权认证。但是在添加这条记录的时候失败了。经过测试分析,域名解析服务商处的api服务正常,且没有收到api请求,应该为请求端的问题。在VPS侦探论坛上发现军哥就这一问题进行了解答,升级curl或者升级acme.sh脚本,或者两者都升级后看能否解决问题。我今天遇到的问题就是acme.sh脚本较旧造成的,升级后就可以正常获取Let'sEncrypt通配符/泛域名SSL证书。
升级curl
yum install curl -y
或
apt-get install curl -y
升级acme.sh,因acme.sh在LNMP管理脚本中集成,所以需直接升级LNMP管理脚本。
wget http://soft.vpser.net/lnmp/lnmp1.7beta.tar.gz -cO lnmp1.7beta.tar.gz && tar zxf lnmp1.7beta.tar.gz && cd lnmp1.7
./upgrade1.x-1.7.sh