certbot使用DNS质询生成证书(二)

方式一中使用添加text记录实现DNS质询,这种方式采用 --manual交互方式获取的证书,在更新证书时会有问题,因为更新是自动非交互模式。我们也调用云商脚本替代方式一中的添加text记录,云商(阿里,腾讯)的脚本已经有人实现,也方便更新证书。

1、安装certbot工具

yum install -y epel-release
yum install -y certbot

2、申请泛域名证书

1) 开始申请证书

# 下载工具包
git clone https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au /srv/certbot-script/
cd /srv/certbot-script/
chmod u+x ./au.sh

# 我们使用阿里云 DNS 服务,需要填写相应的 Secret 信息(参考 ./au.sh 说明)
vim ./au.sh
# TXY_KEY="AKIDC......."
# TXY_TOKEN="3pLabL...."

# 运行命令进行测试(--dry-run)
certbot certonly  -d '*.k4nz.com' -d 'k4nz.com' \
    --manual --preferred-challenges dns \
    --dry-run  \
    --manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
    --manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"
    
# 当测试成功后,去掉 --dry-run 选项来申请证书
certbot certonly  -d '*.k4nz.com' -d 'k4nz.com' \
    --manual --preferred-challenges dns \
    --manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
    --manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"
    
// 证书 /etc/letsencrypt/live/k4nz.com/ 目录,接下来便可配置 Nginx 或者其他 Web server 来使用我们新申请的证书。

2)、参考配置

(1)domain.ini

如果domain.ini文件没有你的根域名,请自行添加。

(2)DNS API 密钥:

这个 API 密钥什么意思呢?由于需要通过 API 操作阿里云 DNS, 腾讯云 DNS 的记录,所以需要去域名服务商哪儿获取 API 密钥,然后配置在 au.sh 文件中:

ALY_KEY 和 ALY_TOKEN:阿里云 API key 和 Secrec 官方申请文档。
TXY_KEY 和 TXY_TOKEN:腾讯云 API 密钥官方申请文档。
HWY_KEY 和 HWY_TOKEN: 华为云 API 密钥官方申请文档
GODADDY_KEY 和 GODADDY_TOKEN:GoDaddy API 密钥官方申请文档。
(3)选择运行环境
目前该工具支持五种运行环境和场景,通过 hook 文件和参数来调用:
PHP(>4以上版本均可)
au.sh php aly add/clean:PHP操作阿里云DNS,增加/清空DNS。
au.sh php txy add/clean:PHP操作腾讯云DNS,增加/清空DNS。
au.sh php godaddy add/clean:PHP操作GoDaddy DNS,增加/清空DNS。
Python(支持2.7和3.7,无需任何第三方库)
au.sh python aly add/clean:Python操作阿里云DNS,增加/清空DNS。
au.sh python txy add/clean:Python操作腾讯云DNS,增加/清空DNS。
au.sh python hwy add/clean:Python操作华为云DNS,增加/清空DNS。
au.sh python godaddy add/clean:Python操作GoDaddy DNS,增加/清空DNS。
根据自己服务器环境和域名服务商选择任意一个 hook shell(包含相应参数),具体使用见下面。

4、查看证书有效期

certbot certificates

5、手动更新证书

# 续期全部证书:
certbot renew \
    --manual --preferred-challenges dns \
    --manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
    --manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"
# 续期单张证书:
certbot renew \
    --cert-name "Your Certificate Name" \
    --manual --preferred-challenges dns \
    --manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
    --manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"
# 强制更新
certbot renew \
    --force-renewal \
    --manual --preferred-challenges dns \
    --manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
    --manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"

参考连接:https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au
https://blog.csdn.net/u013670453/article/details/117340745

你可能感兴趣的:(#,Linux系统配置,linux)