介绍
Let's Encrypt在2018年3月正式支持泛域名证书,使用泛域名的好处就是可以一键支持所有二级域名,不必再单独为二级域名创建SSL证书。
之前是使用certbot通过随机生成一个文件到域名所对应的网站目录,然后letsencrypt的机器人会通过GET请求相应域名并获取该随机文件的方式来确保申请者对域名的控制权,个人觉得此办法及其麻烦,想要SSL证书服务器就必须开放http服务,而现在申请泛域名SSL证书的办法可通过使用acme.sh脚本来申请,该脚本的原理是通过DNS解析商提供的API来添加/删除一条域名的TXT记录,然后让CA机构进行验证,以确保申请者对域名的所有权。该方法不必使用http方式来申请,大大方便了SSL证书的申请过程。
参考文档:https://github.com/Neilpang/acme.sh
https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md(DNS API使用方法)
开始申请SSL证书
wget -O - https://get.acme.sh | sh chmod +x acme.sh
首次运行acme.sh脚本会初始化并生成一些通过NS提供商API修改记录的配置文件,在dnsapi目录下,如果你的NS解析商为阿里云,就先获取阿里云API Key,然后修改dnsapi目录内相对应的模板,填入对应的API Key
export Ali_Key=xxxxx export Ali_Secret=xxxxx
完成API Key的编辑后,就可以开始执行申请证书的命令
./acme.sh --issue -d *.你的域名.com 你的域名.com --dns dns_ali
如果申请成功,脚本会有提示
在/root/.acme.sh/*.你的域名.com目录下可找到证书文件