今天听说let's encrypt的泛域名野卡证书正式上线了,测试了那么久....
本以为是有生之年系列,不过能赶上还是美滋滋的
泛域名证书就比单域名证书方便的多了,一次签发所有子域名通用 只需要担心续期问题就行了
这里我用的是acme.sh自动签发的
Github:https://github.com/Neilpang/acme.sh
官方中文说明:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E
开始配置:
1.安装acme.sh
安装很简单 一个命令就搞定了
curl https://get.acme.sh | sh
安装成功后就自动吧acme
安装进了用户目录下的.acme
目录中了,并且自动把acme.sh
添加进了用户环境中,可以很方便的直接使用acme.sh
命令。
2.获取证书
这里我使用dns自动验证方式验证域名所有权acme.sh
目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成
具体可参考官方文档:https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
由于我的dns解析使用的CloudXNS 所以可以直接在我的CloudXNS 设置中获取dns api
获取自己的dns api就可以进行配置了
export CX_Key="1234"
export CX_Secret="sADDsdasdgdsf"
配置好dns api后使用下面的命令 来获取证书(请替换ffis.me为自己的域名)
acme.sh --issue --dns dns_cx -d ffis.me -d *.ffis.me
需要注意的是第一个 -d 后不可直接写通配符域名*.xx.com,一定要写个单域名,第二个 -d 后面可以写泛域名。
否则可能会出现签发的证书无法被信任的情况。
到这里我们的证书就自动获取到用户目录下的.acme.sh文件夹下了,建议将证书文件复制到其他目录使用,
可用以下命令自动复制到指定目录:
acme.sh --installcert -d ffis.me \
--key-file /usr/local/nginx/conf/ssl/ffis.me/*.ffis.me.key \
--fullchain-file /usr/local/nginx/conf/ssl/ffis.me/*.ffis.me.cer \
--reloadcmd "service nginx force-reload"
该命令会被自动记录的 以后自动更新证书的时候也会自动执行该命令的
PS:acme.sh
会在60天以后自动更新证书