Freenom免费域名通过CloudFlare DNS API自动激活SSL证书方案.

2020年最新免费域名(Free Domain Name)免费注册大全:http://www.chanpindashi.com/2020/04/24/Free-Domain-Name.html

早上起来,发现一堆告警邮件,发现使用了Freenom 免费域名的nginx服务器自动重启失败,查看原因,是Let’s Encrypt 到期了,证书自动激活失败,导致nginx启动检测未通过。

环境情况:

1、域名使用了在Freenom申请的免费域名
2、DNS解析托管在CloudFlare上
3、使用acme.sh ,通过CloudFlare 的DNS API自动激活SSL证书

采用此种模式,已经稳定运行了很长时间,acme.sh自动激活也运行良好。

解决步骤1:手动执行证书:

/etc/letsencrypt/acme.sh –issue –dns dns_cf –home /etc/letsencrypt -d mydoamin.com -d .mydoamin.com -d mydomain.ga -d .mydomain.ga -d mydomain.gq -d *.mydomain.gq –force –debug 2

其中:
mydomain.com为付费购买的域名
mydomain.ga 、mydomain.gq为Freenom上免费申请的域名

手动执行激活命令失败,debug日志并没有提供什么有用信息。

解决步骤2:升级acme.sh

由于出现过acme.sh未及时升级,导致类似问题,因此以为又是acme.sh未及时更新导致,
acme.sh –upgrade
升级后问题依旧。

解决步骤3:临时用standlone模式,生成证书,以保证nginx能够正常启动:

/etc/letsencrypt/acme.sh –issue –home /etc/letsencrypt -d mydoamin.com -d .mydoamin.com -d mydomain.ga -d .mydomain.ga -d mydomain.gq -d *.mydomain.gq –force –yes-I-know-dns-manual-mode-enough-go-ahead-please

解决步骤4: DNS alias mode 模式

在acme.sh github 的issues 中 https://github.com/acmesh-official/acme.sh/issues/2901 ,有人提到:Cloudflare doesn’t support setting DNS record for domains with .cf, .ga, .gq, .ml, or .tk TLD with api.Cloudflare 。

既然不支持.gq等免费域名,试着采用 DNS alias mode 模式。

步骤:
1、在CloudFlare中mydomain.ga和mydomain.gq增加 CNAME值,
Type:CNAME
NAME:_acme-challenge
Target:_acme-challenge.mydomain.com
TTL:Auto
Proxy status:Proxied

2、签发证书
/etc/letsencrypt/acme.sh –issue –dns dns_cf –home /etc/letsencrypt -d mydoamin.com -d .mydoamin.com -d mydomain.ga –challenge-alias mydomain.com -d .mydomain.ga -d mydomain.gq -d *.mydomain.gq –force

注意:这里mydomain.com为收费域名,因此可以通过DNS API自动激活,而mydomain.ga和mydomain.gq为免费域名,不能直接通过DNS API激活证书,因此以上命令通过 –challenge-alias mydomain.com 让 mydomain.ga和mydomain.gq使用DNS alias mode 模式。

执行后,依然报错

用nslookup -type=cname mydoamin.ga 发现无返回结果,挺奇怪。
突然发现mydomain.ga和mydomain.gq增加 CNAME值的 Proxy status:Proxied ,尝试修改为 DNS only,再次执行激活命令,成功了。

在CloudFlare论坛也有人回答:

https://community.cloudflare.com/t/cname-records-are-not-shown-in-a-cname-lookup/3393/6

总结:

1、 CloudFlare目前已经不支持.cf, .ga, .gq, .ml, .tk 等免费域名通过DNS API修改DNS记录,可以变通采用DNS alias mode 模式
2、在设置_acme-challenge CNAME时候,Proxy status一定要选择DNS only,否则CloudFlare会把此CNAME作为普通a记录处理

本文转载自:出家如初,成佛有余

分享不易,请支持本站其他资源

全球手机话费充值:http://www.globalrecharge.cn/
新版axureshop产品原型网:http://www.axureshops.com
AxureShop商城:http://axure.amynik.com/
情趣商城:http://sex.chanpindashi.com/
Axure工具集下载:http://www.chanpindashi.com/2019/12/02/1997.html
产品大师:http://www.chanpindashi.com/
源码商城:http://mall.amynik.com/list/1
axureshop产品原型网(旧版停止更新):http://axureshop.amynik.com/
产品经理论坛:http://bbs.amynik.com
淘宝优惠券:http://taobao.chanpindashi.com/
京东优惠券:http://jd.chanpindashi.com/?chanpindashi.com

最后编辑:2020年05月17日 ©著作权归作者所有

发表评论

×