安装给定证书后,很难判断我是否已成功信任该证书,尤其是对于根 CA。
要检查我是否已成功安装证书而不向可能提供或不提供证书的服务器发出 SSL 请求,我想所有系统范围内可用的 ssl 证书的列表。
我按照这里的说明进行操作,它们起作用了:
https://serverfault.com/questions/559571/install-a-root-certificate-in-centos-6
另外,这提出了一个类似的问题,但给出了 gentoo 系统的答案:
答案1
// , 使用openssl
命令获取输出/etc/ssl/certs/ca-bundle.crt
无论如何,我尝试了以下内容,大部分是从https://unix.stackexchange.com/a/97249/48498,如果我更改文件名以适应 CentOS 6,它似乎可以工作:
如果您不想为--insecure
cURL、Git 等上的标志或其类似物烦恼wget
,您可以将 CA 根证书、自签名证书或证书链添加到您的信任存储区,如下所示:
1. 按照说明下载您选择的.crt
、.pem
、 或。.cer
2. 通过您使用的任何机制获取您想要信任的证书,通常是从中央存储库下载它,或者使用openssl s_client -showcerts -connect some.host.that.uses.that.root:443
等从 SSL 握手中提取它,并将其复制到目标 CentOS 6 主机上的以下文件夹:
/etc/pki/ca-trust/source/anchors/
登录目标主机后,执行以下命令:
$ sudo update-ca-trust enable; sudo update-ca-trust extract
在基于 Red Hat 的操作系统上验证结果,例如:
$ awk -v cmd='openssl x509 -noout -subject' '
/BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-bundle.crt
这应该会产生一长串以下形式的响应:
subject= /C=US/O=MyCorp/CN=root-ca-2048
上面的步骤 #4 回答了这个问题,其他步骤为粗心的人提供了背景信息。