环境与需求:

  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

 

转载于:https://www.cnblogs.com/chy-op/p/10239463.html

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐