您如何安全地将HTTP的TLS/SSL密钥提交到源代码控制中,以便Puppet可以使用它们?您使用哪些工具和实践来加密/解密这些文件?特别是,哪些工具使其易于自动化.
您可以将证书存储在任何 SCM 中,包括 Git,无需担心。在 SCM 中存储私钥并不是最佳实践;您需要找到一种方法来限制只有那些需要访问私钥的人(而且应该是少数人)才能访问。您有两个基本选择:
这不被认为是最佳实践,但您可以将加密的私钥存储在 PKCS-12 存档中(使用只有需要访问私钥的人知道的强密码进行保护),然后再将其放入存储中,例如 SCM 或 FS 等。构建新服务时,构建过程的最后一步是系统管理员手动解密密钥存储。
更好的做法是为新服务实例重新生成密钥,但这需要在构建完成后将新服务的 CSR 提交给 CA。
这两种情况都需要手动完成设置过程。为了使此过程自动化,一些人在设置脚本中对 PKCS-12 密码进行编码 - 这不被认为是最佳实践。
这是可以帮助完成此过程的 Puppet 插件:
https://github.com/puppetlabs/puppetlabs-java_ks