环境与需求:

  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

Ubuntu里let's encrypt通配符证书的自动续期更新的更多相关文章

  1. 使用免费的Let's Encrypt通配符证书 升级我们的网站

    Let's Encrypt通配符证书的官方启用日期:2018年3月13日 也就是说,2018年3月13日之后,我们就可以使用Let's Encrypt通配符证书了,当然是免费的. Let's Encr ...

  2. 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt

    让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt 为什么要用HTTPS  网站没有使用HTTPS的时候,浏览器一般会报不安全,而且在别人访问这个网站的时候,很有可 ...

  3. Let’s Encrypt 通配符证书申请配置

    首先你可以查看下官方提供的支持申请通配符证书的客户端列表:https://letsencrypt.org/docs/client-options/. 这些客户端支持最新的ACME v2接口,而这个接口 ...

  4. Let’s Encrypt 通配符证书,泛域名证书申请配置

    首先你可以查看下官方提供的支持申请通配符证书的客户端列表:https://letsencrypt.org/docs/client-options/. 参考链接:https://github.com/N ...

  5. Kubelet 证书如何自动续期

    一.问题现象和原因 Kubernetes 日志错误 当 Kubernetes 集群日志中出现 certificate has expired or is not yet valid 错误信息时,表明证 ...

  6. Apache环境服务器配置Let's Encrypt免费SSL证书及自动续期方法

    如今越来越多的网站开始使用SSL证书,实现HTTPS网址形式,如果我们是英文网站更需要用到这样格式的HTTPS网址,因为根据谷歌搜索结果提示到如果用到SSL证书的在同等条件下排名结果是有靠前可能的.我 ...

  7. 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期

    https://blog.csdn.net/xs18952904/article/details/79262646 https://freessl.org/

  8. Windows Ubuntu Bash申请免费通配符证书(Let's Encrypt)并绑定IIS

    什么是 Let’s Encrypt? 部署 HTTPS 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 HTTPS 协议的使用. Let’s En ...

  9. 申请免费通配符证书(Let's Encrypt)并绑定IIS

    申请免费通配符证书(Let's Encrypt)并绑定IIS 2018-05-25 18:01 by Giant Liu, 800 阅读, 4 评论, 收藏, 编辑 什么是 Let’s Encrypt ...

随机推荐

  1. python做图笔记

    1. 工具选择 了解了基本python,rodeo,anaconda套件这三种工具. (1)基本python,下载安装python的最新版(目前是python3.7).注意要使用安装版.安装好后,一般 ...

  2. Go丨语言对MySQL数据库的增、删、改、查操作

    1.建立数据库名为: go_test_db 2.建表名为:userinfo 字段: uid int username varchar language varchar created varchar ...

  3. 在Windows7 下 mingw32 开发环境中采用 glut3.7 学习 OpenGL

    2015年10月2日更新: 发现 freeglut 很好用兼容于 gut ,而且开源还在更新中.因此我觉得放弃以前的 glut 了,转而用 freeglut 了. 买了本<计算机图形学第4版&g ...

  4. hdu-5792 World is Exploding(容斥+树状数组)

    题目链接: World is Exploding Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Jav ...

  5. vim 模式下的几个快捷用法

    1.ctrl + v  (-- VISUAL BLOCK --) 选中块模式,y 复制,d 剪切,p 粘贴,Esc退出模式 2.Shift + v  (-- VISUAL LINE -- ) 快速行选 ...

  6. python 之闭包,装饰器,生成器

    一.可迭代的对象(也就是可以用for循环,generator 是生成器的意思) 怎么判断是否可迭代呢?通俗的方法建立一个for循环 高大上的方法是: In [40]: from collections ...

  7. Python3解leetcode Best Time to Buy and Sell Stock II

    问题描述: Say you have an array for which the ith element is the price of a given stock on day i. Design ...

  8. POJ 3258 最小值最大化 二分搜索

    题意:牛要到河对岸,在与河岸垂直的一条线上,河中有N块石头,给定河岸宽度L,以及每一块石头离牛所在河岸的距离, 现在去掉M块石头,要求去掉M块石头后,剩下的石头之间以及石头与河岸的最小距离的最大值. ...

  9. Java集合框架(1)

    Collection接口:它是Java集合框架的一个根接口,也是List.Set和Queue接口的父接口.同时它定义了可用于操作List.Set和Queue的方法—增删改查. Map接口:它提供了一种 ...

  10. jquery中对于批量deferred的处理

    此代码仿照jquery源码中$.when()的实现 function test(i) { var dfd = $.Deferred(); if(i%2 == 0) { console.log(&quo ...