列出所有可用的 ssl ca 证书

Jon*_*ein 49 linux openssl

我的 git 客户声称

error: Peer's Certificate issuer is not recognized.
Run Code Online (Sandbox Code Playgroud)

这意味着它无法在全局系统密钥环中找到相应的 ssl 服务器密钥。我想通过查看gentoo linux 系统上所有系统范围内可用的 ssl 密钥列表来检查这一点。我怎样才能得到这个列表?

Sté*_*las 104

您想要的不是 SSL 密钥,而是证书颁发机构,更准确地说是他们的证书。

你可以试试:

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

获取每个 CA 证书的“主题” /etc/ssl/certs/ca-certificates.crt

请注意,有时,当 SSL 服务器忘记提供中间证书时,您会收到该错误。

使用openssl s_client -showcerts -connect the-git-server:443获得证书发送列表。

  • [p11-kit 包](http://p11-glue.freedesktop.org/p11-kit.html) 中的`trust list` 列表本质上是一样的吗? (3认同)
  • // , 这在 CEntOS 6 上不起作用,但我在这里添加了 CEntOS 6 的答案:https://unix.stackexchange.com/a/363309/48498 (2认同)

SHW*_*SHW 23

不确定 Gentoo,但大多数发行版将他们的证书软链接放在系统范围内的/etc/ssl/certs.

  • 密钥文件进入 /etc/ssl/private
  • 系统提供的实际文件位于 /usr/share/ca-certificates
  • 自定义证书进入 /usr/local/share/ca-certificates

每当您将证书放在上述路径之一中时,请运行update-ca-certificates以更新/etc/ssl/certs列表。

  • 它是带有额外的“s”的“update-ca-certificates”(我自己无法编辑,因为它只是一个字符编辑)。 (3认同)

小智 5

我需要列出我们服务器上的所有证书并通知它们是否到期。我们想出了这个命令:

locate .pem | grep "\.pem$" | xargs -I{} openssl x509 -issuer -enddate -noout -in {}
Run Code Online (Sandbox Code Playgroud)