通过acme的docker自动获取Let's Encrypt证书

通过acme的docker自动获取Let's Encrypt证书,认证模式是DNS认证,好处是支持泛域名证书,对主系统无“污染”。

一、获取DNS的API

支持的DNS服务商见官方wiki:https://github.com/Neilpang/acme.sh/wiki/dnsapi

这里以Cloudflare的为例

首先登录cf账号,进入右上角的My Profile

1.png

然后进入API Tokens,点击Create Tokens新建一个Tokens

2.png
3.png

此处注意Permissions要2条,Zone.ZoneZone.DNS,权限为Edit可编辑,Resources设置为All zones

4.png

二、运行docker获取证书

docker run --rm -itd \
-v "$(pwd)/out":/acme.sh  \
-e CF_Token="xxxxxxxxxxxxxxxxxxxx" \
-e CF_Account_ID="cdxxxxxxxxxxxxxxx" \
neilpang/acme.sh --issue --dns dns_cf -d tanst.net -d *.tanst.net
这里要注意如果在shell脚本里面运行一定要加上-itd后面的参数d后台运行,否则无效。

Token填第一步获取的值
Account_ID为登录地址里面的32位字符:

5.png

添加新评论