使用dns_dp自动申请证书时,出现invalid domain
问题描述
起因是我想在本地使用acme.sh申请一个临时的SSL证书,但是一直报错,报错信息是
invalid domain
Error add txt for domain:_acme-challenge.b2.aqcoder.cn
一开始我以为是dnspod的id和密钥写错了,就去重新申请复制粘贴:
后来也是不行,还去了腾讯云的访问管理那里找来了有着dns全读写权限的子用户的密钥:
结果还是报错,只能使用搜索大法了,把报错信息丢给必应:
找不到多少有用的信息,只能去acme.sh的issues里找了,因为我用的dns是腾讯云的pod,所以我的搜索词是acme.sh命令的dns_dp(使用invalid domain也是有相关性的):
然后我找那些题目比较符合且有比较多对话的(从右边的对话数可以看出),最后找到这个比较符合我出现的问题:#2806
仔细查看他们的对话,可以从中找到一些收获:
stone-stones 说 第二个token,腾讯云那边的api密钥不能直接使用,你需要在 DNSPod 开启密钥token,token页面包含一个id和token信息
问题解决
这就是我想要的信息,原来不能直接用API密钥得使用Token对应得id就是DP_Id,token就是DP_Key。重新申请一个token,记住值后重新执行一遍:
问题总结
一份从出现问题,寻找问题,找到问题,搜索问题,解决问题的过程就这样完成了,期间花费了大概半个钟搜索问题,其余时间都花费很少。其实,如果熟悉debug,能想到问题的根源解决报错是最快捷的方式,但是在不熟悉debug,通过查看日志判断问题的根源的情况下,搜索相似问题成了目前我们大多数时候最常用的办法。
相关链接
使用DNSPOD.cn自动申请证书时,出现invalid domain · Issue #2806 · acmesh-official/acme.sh
acmesh-official/acme.sh: A pure Unix shell script implementing ACME client protocol