泛域名证书申请相关

泛域名证书申请相关,备忘。

泛域名证书申请

based-on-here: here

see-also: here

本篇使用acme.sh申请证书。

安装

1
2
apt install socat curl
curl  https://get.acme.sh | sh

自动更新:

1
acme.sh --upgrade --auto-upgrade

默认CA为zerossl,可以通过以下命令切换。

命令中的letsencrypt可替换为buypassssl.comgooglezerossl

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

手动申请

可能存在的问题
我在好久之前申请证书的时候如果用zerossl的CA好像需要注册账号,目前我已无法复现,如果出现这种情况的话请自行查找资料或者更换CA吧。

手动申请应当仅用于测试,不应用于生产环境。

acme.sh提供了多种自动化API支持,证书即将到期时自动刷新。稍后讲解。

请先阅读此Github wiki

1
acme.sh --issue --dns -d unauth401.tech -d *.unauth401.tech --yes-I-know-dns-manual-mode-enough-go-ahead-please

随后你需要手动添加一条TXT记录来验证你对这个域名的所有权。

完成后:

1
acme.sh --renew -d unauth401.tech -d *.unauth401.tech

自动化

首先你需要准备API的key和token,具体看你选的是哪一家服务商,这里以cloudflare为例。

首先前往cloudflare profile中api页面新建一个token,给予edit对应域名zone的权限。

然后前往域名页,复制account idzone id

回到你的服务器,export之。

1
2
export CF_Token="复制下来的 Token"
export CF_Account_ID="复制下来的 Account ID"

然后

1
acme.sh --dns dns_cf --issue -d unauth401.tech -d *.unauth401.tech --force

顺便说一句,强烈建议使用全局APIkey,试想如果这个API泄露了攻击者可以接管你账号下的所有域名,而单API泄露不过是一个或者几个域名遭殃。跟全体烂完相比,一个或几个显然相对好一些。懂我意思吧:)

理论上上述流程走完之后,你的账号信息就会被存储到默认配置文件目录下的account.conf文件中。

但你也可以手动添加,就不用export了。而且有的时候不知道为什么他写不进去配置文件。

1
2
CF_Account_ID="cf-accountid-here"
CF_Email="cf-email-here"
0%