acmesh-official / acme.sh

A pure Unix shell script implementing ACME client protocol
https://acme.sh
GNU General Public License v3.0
38.31k stars 4.89k forks source link

aliyun return error #2786

Open zhangchunsheng opened 4 years ago

zhangchunsheng commented 4 years ago

https://alidns.aliyuncs.com/?AccessKeyId=&Action=DescribeDomainRecords&DomainName=com&Format=json&SignatureMethod=HMAC-SHA1&SignatureNonce=1583841406566399761&SignatureVersion=1.0&Timestamp=2020-03-10T11%3A56%3A46Z&Version=2015-01-09&Signature=Ytq%2FOOkx%2F0f1F0YFybu5eXmPOfY%3D

{ RequestId: "26667615-B905-48FC-A4A4-862AC14B600C", Message: "Specified signature nonce was used already.", Recommend: "https://error-center.aliyun.com/status/search?Keyword=SignatureNonceUsed&source=PopGw", HostId: "alidns.aliyuncs.com", Code: "SignatureNonceUsed" }

zhangchunsheng commented 4 years ago

aliyun can't work

Specified signature nonce was used already.

Neilpang commented 4 years ago

能不能说一下啊你的系统环境. 然后提供 --debug 2 log

Amranth commented 2 years ago

生成新的阿里云AccessKey,别用子用户AccessKey没有权限。 我是梅林环境,参考链接:https://ssrvps.org/archives/5172 梅林Let's Encrypt申请不到证书解决 证书过期 , 死活申请不到证书 , 所以找原因 , 下面给出解决方法

1.原因是生成随机值出错 , 首先SSH到路由器 , 执行

sh /koolshare/acme/acme.sh --home /koolshare/acme --upgrade --auto-upgrade 0 2.让acme脚本更新到最新 , 并且关闭自动更新

3.然后修改/koolshare/acme/dnsapi/dns_ali.sh,可以用vi修改 , 也可以用WinSCP软件 , 到路由器修改这个文件

4.找到

_ali_nonce() {

_head_n 1 </dev/urandom | _digest "sha256" hex | cut -c 1-31

Not so good...

date +"%s%N" } 5.这坨代码 , 把它修改成

_ali_nonce() {

_head_n 1 </dev/urandom | _digest "sha256" hex | cut -c 1-31

Not so good...

date +"%s%N"

date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ" } 6.保存后 , 即可按照正常流程申请证书了~