如何在 CentOS 6 上列出所有可用的 SSL CA 证书?

Nat*_*ese 5 centos ssl certificates

在安装给定证书后,很难判断我是否成功地信任了它,尤其是对于根 CA。

要检查我是否已成功安装证书,而无需向可能提供或不提供证书的服务器发出 SSL 请求,我想列出所有系统范围内可用的 ssl 证书

我按照此处的说明进行操作,它们起作用了:

https://serverfault.com/questions/559571/install-a-root-certificate-in-centos-6

此外,这提出了一个类似的问题,但给出了 gentoo 系统的答案:

列出所有可用的 ssl ca 证书

Nat*_*ese 13

// , 使用openssl命令从/etc/ssl/certs/ca-bundle.crt

无论如何,我尝试了以下内容,主要是从https://unix.stackexchange.com/a/97249/48498复制的,如果我将文件名更改为 CentOS 6,它似乎可以工作:

如果您不想打扰--insecurecURL、wgetGit 等上的标志或其类似物,您可以将 CA 根证书、自签名证书或证书链添加到您的信任存储中,如下所示:

1.按照说明下载.crt.pem或者.cer你选择的。

2.通过您使用的任何机制获取您想要信任的证书,通常是通过从中央存储库下载它或从 SSL 握手中提取它openssl s_client -showcerts -connect some.host.that.uses.that.root:443,等等,然后将其复制到目标 CentOS 6 主机上的以下文件夹:

    /etc/pki/ca-trust/source/anchors/
Run Code Online (Sandbox Code Playgroud)

登录目标主机后运行以下命令:

    $ sudo update-ca-trust enable; sudo update-ca-trust extract
Run Code Online (Sandbox Code Playgroud)

在基于 Red Hat 的操作系统上验证结果,例如:

    $ awk -v cmd='openssl x509 -noout -subject' '
        /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-bundle.crt
Run Code Online (Sandbox Code Playgroud)

这应该会产生一长串表单的响应:

    subject= /C=US/O=MyCorp/CN=root-ca-2048
Run Code Online (Sandbox Code Playgroud)

上面的步骤 #4 回答了这个问题,其他步骤为粗心的人提供了上下文。