step-ca ha 模式说明
step-ca是一个很不错的开源ca 管理工具,但是如果实际使用就存在ca 的问题 ,实际上官方也说明了ha 的玩法,但是因为
step-ca 在架构设计上并不是完全分布式的,所以还是有一些问题的
主要的问题
- 多实例数据共享(比如ca,acme 信息),就需要一个db了,推荐pg 或者mysql
- init 开启--remote-management (对于新部署,已经运行的需要调整下),之后会创建admin 账户
- ca.json 配置信息同步,官方文档是可以同构ansible 等一些工具解决,因为有些调整之后服务需要reload 下(基于nas 也是一种选择)
- acme server 并发链接限制,可以参考官方一个issue 解决
- lb 工具,可以选择haproxy 以及nginx 的stream,但是会有一些限制(比如日志记录问题),同时应该使用4层处理(当然我们部署的step-ca 配置同时也是需要配置dns 或者vip的,具体是在init 中)
参考部署图
一个参考生成的mysql 表信息图
下图是实际开启了mysql 生成的表信息,同时通过acme 的一些信息都会记录到数据库中
说明
以上是关于step-ca ha 一个简单说明,可以参考
参考资料
https://smallstep.com/docs/step-ca/provisioners/#jwk
https://smallstep.com/docs/step-ca/certificate-authority-server-production/#high-availability
https://smallstep.com/docs/step-ca/certificate-authority-server-production