环境与需求:
Ubuntu云服务器上,已经做好了ssl证书的免费申请,但是证书的期限是3个月,3个月到期后必须重新申请或者更新。由于k8s集群里的服务一直在使用证书,每三个月人工更新太麻烦,所以想要配置一些做个定时自动更新。
准备:
其中,
certbot-auto 执行命令,可以对证书进行申请更新删除等一系列操作
dns_script 调用连接服务器控制台设置DNS校验记录的脚本
pytz python的一个模块
一、下载hook功能的脚本文件
git clone https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au.git
目录内容:
python-version里的脚本是python环境使用的,外面的脚本是PHP环境使用的,都是同一种效果
二、获取AccessKeyID和AccessKeySecret,登录服务器控制台
三、更新脚本
我使用的是python脚本,修改里面变量ACCESS_KEY_ID和变量ACCESS_KEY_SECRET的值为上一步得到的ID和密码
并且要赋予两个脚本的执行权限(这个很重要,我之前就忘记了,浪费了很多时间)
四、默认的python缺少pytz模块,而脚本里用到了pytz
pip install wheel
pip install pytz-2018.6-py2.py3-none-any.whl
五、更新测试
./certbot-auto renew --cert-name scdsc.org.cn --preferred-challenges dns-01 --manual-auth-hook dns_script/python-version/au.sh --dry-run
其中,
--cert-name 指定更新哪个证书
--manual-auth-hook 指定使用更新DNS记录的脚本
--dry-run 测试更新,并不会真的更新
--preferred-challenges 应该可以不用加,因为执行更新命令会自动去调取cert的配置文件,里面有各种参数
./certbot-auto renew --cert-name scdsc.org.cn --preferred-challenges dns-01 --manual-auth-hook dns_script/python-version/au.sh --force-renew
--force-renew 强制更新,由于证书可使用时间还很长,加上此选项便可以强制更新了
六、更新成功
详情参考:
生成DNS校验记录:https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au
pytz模块包下载:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pytz
kubernetes里let's encrypt通配符证书的自动续期更新
原文地址:https://www.cnblogs.com/chy-op/p/10239463.html