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