嗨
我们有一群HAProxy共享或多或少相同的通配符证书,并通过DNS挑战进行了验证,我们的NS提供商是AWS route53。问题是如何管理这些证书,我们如何续订它们。
让每个服务器更新其自己的证书、公共证书和特定证书意味着每个服务器都有一个路由53令牌,因此它将自己推送REQUIRED_acme-challenges。我会很容易地说,一个好的剧本,一个代币,给你。但是,出于安全考虑,我们的区域每个服务器…都有一个令牌也许不是。不确定我们是否可以定制AWS令牌来仅编辑EX的_acme-challengl条目。
有一个服务器,很可能不是一个反向代理,而是一个专门的CI工作人员更新所有证书,并以某种方式推送它们。如果多一台服务器、一堆脚本和参数来知道我要更新什么内容给谁发送…,工作流程就会变得更加复杂
所以我正在寻找实现的模式来处理同样的问题,如果有人想分享的话?
致以最诚挚的敬意,当我做到这一点时,它是:
一个负责颁发和续订证书的ACME客户端
预先分发给每个节点的证书私钥(即它永远不会更改)
续订时,ACME客户端将续订的证书推送到S3存储桶
在消费者上,每天执行cron任务从S3提取证书并正常重新加载haProxy
这很方便,因为每个节点都已经有了对S3存储桶的公共访问,但显然您可以选择您想要的任何技术变体。
我还试验了使用无服务器框架来颁发和续订证书(然后推送到桶),以实现可靠的执行和无SPOF,并且它允许您将更新DNS域的角色仅授予例如无服务器任务,而不是您的服务器(S)。
感谢您的反馈!我想您正在使用--reuse-key来保持私钥的静态,我在那个环境中使用了不同的客户端(Acmetool),但是,是的,--reuse-key将是使用Certbot的正确做法。,rgarrigue:
但是,出于安全考虑,我们的区域每个服务器…都有一个令牌也许不是。不确定我们是否可以定制AWS令牌来仅编辑EX的_acme-challengl条目。
不是直接的。路由53没有提供比“在此托管区域中写入任何记录”更细粒度的权限。
您可以通过使用多个托管区域来间接配置它(如果您愿意每月向Amazon额外支付0.50美元或0.25美元)。一些ACME客户端可能在更复杂的设置上有困难。感谢你的精确度,节省了我检查这一点的时间,如果所有其他方法都失败了,你能不能把这个过程复制到每台服务器上?
也就是说,每个服务器都将拥有并维护自己的证书(S)。
我认为同名证书的最低限制是每周5个。
因此,即使是20台服务器也可以在不到1个月的时间内续费。