本记录在 Debian 10 上通过,虽说是 Debian 但是其他 Linux 一样可以使用
#安装 acme.sh
参考:https://github.com/Neilpang/acme.sh/wiki/How-to-install
# 从Git克隆
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
# 安装
./acme.sh --install \
--home /usr/local/letsencrypt \
--config-home /usr/local/letsencrypt/data \
--cert-home /var/www/ssl \
--accountemail "[email protected]"
注意:
-
此处安装在
/usr/local/
下,可能出现权限不足,证书存放在/var/www/
下sudo chown -R {username} /usr/local sudo chown -R {username} /usr/local
重启终端使别名生效
#导出 ID
参考:https://github.com/Neilpang/acme.sh/wiki/dnsapi
这里采用 DNS 验证,域名是腾讯的所以采用腾讯云的 DNS 服务器,地址为https://www.dnspod.cn,在安全中心生成 API Token(API ID 和 API KEY)
在终端中输入生成环境变量
# 腾讯云 DNSPod
export DP_Id="13****"
export DP_Key="f047ab5************be455a82875e8"
#生成证书
运行脚本 (注:如果测试需添加--test
,否则次数过多容易被屏蔽几分钟)
acme.sh --issue \
--dns dns_dp \
-d {example.com} \
-d {*.example.com}
--force
最后输出以下的数据就完成
[Mon 23 Dec 2019 06:21:49 PM CST] Your cert is in /var/www/ssl/{example.com}/{example.com}.cer
[Mon 23 Dec 2019 06:21:49 PM CST] Your cert key is in /var/www/ssl/{example.com}/{example.com}.key
[Mon 23 Dec 2019 06:21:49 PM CST] The intermediate CA cert is in /var/www/ssl/{example.com}/ca.cer
[Mon 23 Dec 2019 06:21:49 PM CST] And the full chain certs is there: /var/www/ssl/{example.com}/fullchain.cer
#可能出现的错误
-
acme.sh *.example.com:Verify error:CAA record for *.example.com prevents issuance
这个错误具体原理我并不知道,但是是因为我域名解析里面使用了记录类型为 CNAME 导致的,将记录类型为 CNAME 的解析暂停后重新申请就可以了(注:DNSPOD 中 CNAME 暂停一段时间后会自动启用)
-
Create new order error. Le_OrderFinalize not found
API 接口达到现在,暂时屏蔽了,需要等待一段时间,应该几分钟