使用acme.sh通过Clouflare申请免费域名时,出现 `Add txt record error.`错误的一个解决方案
问题描述
当我们为freenom的免费域名(后缀为cf、tk等)使用dns方式申请证书的时候,会出现Add txt record error的错误。这并不是我们设置的问题。而是Cloudfare关闭了免费域名的api造成的。
解决方法
- 使用手动dns的方式,申请证书。缺点就是不能自动续签证书。
- 使用域名别名的方式申请证书(推荐)。
必要条件
- 你必须要有一个能够通过 Cloudflare api更新域名解析的域名
步骤
在dns服务器上,添加一条免费域名的解析(CNAME),指向代理域名。格式如下:
1
2_acme-challenge.example.com
=> _acme-challenge.aliasDomainForValidationOnly.com注:
example.com为免费域名,无法通过Cloudflare api更新域名解析。aliasDomainForValidationOnly.com是另一个域名,可以通过Cloudflare api更新域名解析。设置 Cloudflare Token信息。参考dnsapi · acmesh-official/acme.sh Wiki (github.com)
使用如下命令申请证书
1
2acme.sh --issue \
-d example.com --challenge-alias aliasDomainForValidationOnly.com --dns dns_cf