ssl - 自动找到正确的中间 CA 证书

标签 ssl puppet puppetlabs-apache

我们使用 Puppet 配置多个运行 Apache HTTPD 的集群,使用 Puppetlabs 的 Apache 模块。

所有证书都存储在 Puppet 已经可以访问的 git 存储库中(例如 puppet://files-host/path/to/certs/${fqdn}.crt)。

现在我们必须为每个使用的证书明确指定中间 CA 证书(apache 类中的 ssl_chain 变量)。

是否可以让Puppet自动找出正确的中间CA证书?在“真正的”脚本语言中,我会遍历所有 *.pem 文件并将主题与证书的颁发者进行比较。但这在 Puppet 中如何工作?

我们不想将中间 CA 证书嵌入到所有证书中。

最佳答案

我找到了解决问题的方法。这不是最佳方式,但它似乎是 Puppet 托管基础设施的唯一方式。

所有中间 CA 证书都位于 git 存储库中的单个目录中,Puppet 会将文件夹的全部内容放入托管主机(将文件资源的“递归”和“清除”属性设置为 true)。

每个证书和 key 文件也使用文件资源进行部署。证书文件的文件资源将通知执行 shell script 的 exec 资源它将正确的 CA 证书符号链接(symbolic link)到静态文件路径(即/etc/ssl/private/my-domain.pem ->/etc/ssl/ca/some-ca.pem。因此每个 FQDN 有三个文件(fqdn .crt、fqdn.key 和 fqdn.pem)。

关于ssl - 自动找到正确的中间 CA 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42370938/

相关文章:

spring - 设置负载均衡器和 HTTPS 后无法连接到站点?

puppet - 在 Puppet 中合并两个哈希

ruby - puppet ssl 错误 "SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed"

c++ - 如何破译 boost asio ssl 错误代码?

php - 停止通配符 SSL 将子域重定向到主域

java - 使用 Android WebViewClient 启用特定的 SSL 协议(protocol)

ruby - 除非目录存在于 puppet 中,否则执行命令

linux - Puppet:vcsrepo with git,Ubuntu 和 CentOS 之间的请求格式不同

puppet - runintervel in puppet - 当 list 没有变化时,旧目录是否会再次应用?

ubuntu - 如何将两个虚拟机主机添加到工头 puppet 大师