众所周知,acme其实还是有些问题存在,经常莫名其妙出问题,关键是你还不知道问题出在哪。比如我之前的证书,监控突然就提示证书即将过期……我一看,自动续期失败了,然后我立马手动重签,还是不行。我用了两个DNS,DNSPod和cf。开Debug模式后一看,不知道为什么,他两个DNS顺序弄反了,在别的机器上签证是正常的,原机器就算抹除acme再装再签也还是不行。。。。。
这个时候就是alias模式登场的时候了。注:alias模式在巨多域名签一张证时(大概75个以上)还是会出错。
正文开始
注:本文为《免费无限泛域名ssl证书》的补充。其他签证方法的详细图文视频教程请移步。
alias原版官方英文文档↓
目录:
一、alias模式概念
官方的文档特详细,工地英语级大概就能看懂。
alias模式就是通过一个域名来验证多个域名。假设你有a.com
,b.com
,c.com
和g.com
四个域名在四个不同DNS运营商处且g.com
支持API(比如cf)。此时你就可以配置_acme-challenge.a.com
,_acme-challenge.b.com
,_acme-challenge.c.com
CNAME到_acme-challenge.g.com
,然后只通过_acme-challenge.g.com
验证全部域名,这就是challenge-alias模式。
其实还一个domain-alias模式,就是CNAME的时候不需要必须CNAME到g.com
的_acme-challenge
前缀的二级域,但是那样不但会导致后期难管理,还比较难理解,咱就不谈这个了。想了解这个的自己去看文档,锚点是#user-content-6-challenge-alias-or-domain-alias
。
二、用alias模式签证
如概念中所说的,假设域名a.com
,b.com
,c.com
和支持API的用来验证的g.com
,并假设g.com
放在cloudflare。
Ⅰ)签根域+泛域证书演示
配置CNAME解析_acme-challenge.a.com
,_acme-challenge.b.com
,_acme-challenge.c.com
到_acme-challenge.g.com
。然后等DNS生效(不是本地生效就行,要等到全球生效)后就可以签证了。
按《免费无限泛域名ssl证书》中cloudflare签证教程配置(export
)好账号和key(也可以看视频)之后,使用命令:
acme.sh --issue --challenge-alias g.com --dns dns_cf -d a.com,b.com,c.com,g.com,*.a.com,*.b.com,*.c.com,*.g.com
就能签到一张证书了a.com
、b.com
、c.com
、g.com
根域和所有二级域都能使用的ssl证书了,如果你不删掉那些CNAME解析和API权限的话,每六十天他还会自动续期。多个alias域名和多个alias域名在不同DNS运营商之类的咱就不讲了,我局的这样不就失去了意义嘛,比普通模式还复杂。≡[。。]≡
Ⅱ)签多个二级域名证书演示
二级域就比较烦了,我还是更喜欢一个证书走天下。
假设你需要签1.a.com
、2.a.com
、1.b.com
、b.com
的一张ssl证书,那么你需要配置DNS解析:
将_acme-challenge.1.a.com
、_acme-challenge.2.a.com
、_acme-challenge.1.b.com
、_acme-challenge.b.com
CNAME到_acme-challenge.g.com
。同样等待DNS生效(不是本地生效就行,要等到全球生效)并配置好DNS的key(key只要配置一次)后,用命令签证:
acme.sh --issue --challenge-alias g.com --dns dns_cf -d 1.a.com,2.a.com,1.b.com,b.com
就能拿到一张给1.a.com
、2.a.com
、1.b.com
和b.com
用的ssl证书了。同样,不删解析不关API的话每六十天自动续期。
注意:
如果你的alias域名的api有调用速率限制,会在过多域名的情况下无法完成签证!比如DNSpod,短时间只能验证到两次就达到限制了。
不能开启CNAME加速,不能套多层CNAME,必须直接CNAME到alias域名。有残存的_acme-challenge的TXT记录必须要删除。