我正在尝试在一系列 CentOS 系统上为我的内部证书服务器安装证书,但我发现这方面的文档几乎不存在。
我的最终目标是能够在没有错误的情况下针对内部安全服务器使用git
、curl
和其他内容。
在 Ubuntu 上这很简单,您将证书放在一个文件夹中并运行一个命令来生成一系列链接以将 CA 证书添加到证书路径中。
我终其一生都无法找到如何在 CentOS 上执行此操作。关于信任随机证书的大量信息是可用的。(即:在 PEM 编码的证书文件中创建一个符号链接,/etc/pki/tls/certs
以证书的哈希值命名。不适用于我的 CA,因为上述应用程序仍然无法验证由 CA 签名的证书)。
如何在 CentOS 系统上安装新的根 CA?
从 CentOS 6+ 开始,有一个工具可以做到这一点。根据本指南,可以首先通过启用系统共享 CA 存储来安装证书:
然后将证书作为 CA 的信任放置在
/etc/pki/ca-trust/source/anchors/
高优先级(不可覆盖)或/usr/share/pki/ca-trust-source/
(低优先级,可覆盖)中,最后更新系统存储:Et voila,系统工具现在在建立安全连接时将信任这些证书!
不幸的是,我不认为在 CentOS 中有一个单一的集中方式可以做到这一点。我花了很多时间试图完成同样的事情。主要的 pki tls 证书存储用于很多但绝对不是全部。
我的解决方案是维护一个 puppet 模块,它将更新的证书存储推送到每个产品使用的每个位置。基本逻辑是,如果给定的商店存在,则添加我的自定义条目。
这并不完美——我部署的一些 tomcat 实例有一个内部 Java 安装和一个非标准的 cacerts 目录——但它可以满足我的大部分需求。