安装ACME

安装很简单,一条命令:

1
curl https://get.acme.sh | sh -s email=my@example.com

或者

1
wget -O -  https://get.acme.sh | sh -s email=my@example.com

普通用户和 root 用户都可以安装使用。

修改默认 CA

acme.sh 脚本默认 CA 服务器是 ZeroSSL,有时可能会导致获取证书的时候一直出现:Pending,The CA is processing your order,please just wait.
只需要把 CA 服务器改成 Let's Encrypt 即可,虽然更改以后还是有概率出现 pending,但基本 2-3 次即可成功

1
acme.sh --set-default-ca --server letsencrypt

使用DNS校验的方式签发证书

如果你没有服务器,没有公网 IP,只需要 DNS 的解析记录即可完成验证。

自动验证(DNS API)

DNS 方式的真正强大之处在于可以使用域名解析商提供的 API 自动添加 TXT 记录,且在完成验证后删除对应的记录。
acme.sh 目前支持超过一百家的 DNS API。
以 DNSPod.cn 为例,你需要先登录到DNSPod.cn,拿到你的 DNSPod API Key 和 ID 并设置:

1
2
export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"

现在我们可以签发通配符证书了:

1
2
acme.sh --issue --dns dns_dp -d example.com -d *.example.com
# DP_Id 和 DP_Key 将保存在 ~/.acme.sh/account.conf 中,并在需要时自动获取,无需手动再设置。

如果你的域名托管在支持的DNS提供商(https://github.com/acmesh-official/acme.sh/wiki/dnsapi)
这些是支持的DNS提供商列表,你可以使用DNS API来签发证书,这样就不需要使用公网ip去开通服务。

获得证书后再通过下述命令部署

1
2
3
acme.sh --install-cert -d selflove.ren \
--key-file /home/zfxt/docker_data/nginx/ssl/selflove.key \
--fullchain-file /home/zfxt/docker_data/nginx/ssl/selflove.cer

引用自acme.sh官网