如何在容器集群环境中使用Let's Encrypt HTTPS证书

  • 时间:
  • 浏览:1

这条命令开始英文英文更新证书:

Let's Encrypt是由互联网安全研究小组(ISRG)在2015年推出另2个 HTTPS证书的免费避免方案,旨在提供另2个 免费开放的CA。配合电子前哨基金会(EFF)提供的自动化脚本certbot,只需一根绳子 命令就可以申请/更新HTTPS证书。

Let's Encrypt对通配型的支持已于半月前(2018年3月13日)上线,申请通配型证书有以下几点前要注意:

以下是亲们针对这两点问题探索的这个 避免方案。

整个流程还是非常简单的,相比HTTP验证法律法子不要再配置SLB来转发验证请求,其缺点在于不容易自动化。certbot中我觉得集成了这个 DNS验证的插件,但只支持国外2个DNS服务商:

亲们将这三步动作集成起来,放上去chronos中每月运行一次。certbot会判断证书的到期时间,可能性当证书有效期小于400天时才会执行更新操作。

certbot支持HTTP和DNS两种法律法子来验证域名所有者。

可能性使用的DNS服务商恰好名列其中,那就省事不少,也算是 开箱即用。小博无线使用DNSPod管理DNS,要将这套流程自动化起来还前要额外的工作。亲们参照已有的插件,写了另2个 DNSPod的验证插件certbot-dns-dnspod

运行这条命令即可申请通配证书,中途会提示打上去DNS TXT记录,打上去前一天回车继续。

插件开发不算麻烦,只前要实现对应的_perform()_cleanup()法律法子。但是 目前certbot对DNS插件的引用也有hard code在代码中,前要修改certbot的代码可以使新插件正常工作。有3个文件蕴含了对插件的引用代码:

第三步,删除第一步配置的转发策略和虚拟服务器组

Let's Encrypt签发的证书有效期另2个 月,前要频繁地更新。我觉得certbot提供了一键更新证书的功能,但其工作法律法子决定了它好难应用在容器集群中。

Let's Encrypt服务端以HTTP法律法子访问域名下指定的验证文件

第二步,在ecs-refresh运行容器:

Let's Encrypt严格限制了签发证书的次数,另2个 注册域名(*.example.com)每周最多签发20个证书,另2个 子域名(abc.example.com)每周最多签发3个证书。

第一步,在SLB的400端口监听中,打上去一根绳子 特殊的转发策略,匹配该规则的URL转发至另2个 特殊的虚拟服务器组,这个 组好难另2个 节点,指向运行certbot的容器。

亲们实践发现,即使是验证错误也会计算一次。这个 这个 在正式运行前一天,一定打上去--staging参数使用Let's Encrypt的测试接口。测试接口只用于测试证书的签发流程,其签发的证书为无效证书。

可能性是申请通配证书,使用了--server参数,便好难再使用--staging参数,将--server地址指定为https://acme-staging-v02.api.letsencrypt.org/directory即可。

在申请证书时,亲们将域名指定为*.example.com,证书支持所有子域名,但不蕴含根域名(example.com)。可能性希望也支持根域名,将根域名也并肩放上去参数-d

Let's Encrypt服务端查看域名下算是 有创建指定的TXT记录

certbot对HTTP验证的支持度更好,几乎是开箱机用。但使用HTTP就会遇到后面 提到的问题1,怎样才能将流量导入亲们指定的节点呢? 亲们最终使用SLB的转发策略加虚拟服务器组来避免这个 问题。

certbot目前的stable版本还不支持通配证书,这个 这个 亲们使用v0.22.0分支安装certbot,插件certbot-dns-dnspod也在virtualenv环境中安装。