update-ca-trust 提取物未将证书添加到 ca-bundle

update-ca-trust 提取物未将证书添加到 ca-bundle
CentOS Linux release 7.6.1810 (Core)
Kernel 5.1.11-1.el7.elrepo.x86_64

我将证书文件放入/etc/pki/ca-trust/source/anchors

文件看起来像这样:

-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIQeqkpty5ghoxP8YfCRe+7qjANBgkqhkiG9w0BAQUFADBP
some strings
FnpKVwAq6UcYOu4AoXweaqOOMsLNSw==
-----END CERTIFICATE-----

update-ca-trust extract我期望在捆绑文件中看到我的证书之后/etc/pki/tls/certs/ca-bundle.crt,但其中没有任何新内容。并ls -al显示最新的编辑时间,所以它是在两个月前更改的,而不是现在。

最初我用文件尝试这个.crt。但重命名.crt.pem并没有解决我的问题。我也尝试过update-ca-trust enableupdate-ca-trust force-enable提取之前,但没有帮助。 /var/log/messages对此什么也没说。

我要做什么来修复它?

答案1

长话短说

除非成功,否则不会update-ca-trust将您的证书文件提取到:ca-bundle.crt

openssl x509 -noout -text -in <cert_file> | grep --after-context=2 "X509v3 Basic Constraints" | grep "CA:TRUE"

我在这个问题上花了几个小时。它的根源在于名为的 X.509 扩展基本约束用于标记证书是否属于CA。

我的粗浅发现:

  1. update-ca-bundle工具实际上是一个 shell 脚本,因此很容易查看内部情况
  2. 该脚本p11-kit每次使用不同的过滤器并创建不同的捆绑文件多次调用实用程序。
  3. 该文件ca-bundle.crt实际上是使用过滤器tls-ca-bundle.pem生成的文件的链接。因此它会忽略除“CA 证书”之外的所有证书。p11-kitca-anchors
  4. 证书是否是 CA 由以下因素决定基本约束X.509 扩展。这样就可以将证书标记为 CA 的一部分。
  5. 可以使用以下命令列出所有 X.509 扩展openssl x509 -noout -text -in <cert_file>
  6. 因此,任何未标记为 CA 一部分的证书文件都将被过滤掉,p11-kit并且不会导出到所需的ca-bundle.crt文件。

请随时在评论中纠正这一点。

答案2

我不知道你到底在问什么,但以下步骤对我有用。我启用“ca trust”,复制文件,提取,然后验证。

$ update-ca-trust enable
$ cp ZScalar.pem /etc/pki/ca-trust/source/anchors/
cp: overwrite ‘/etc/pki/ca-trust/source/anchors/ZScalar.pem’? yes
$ update-ca-trust extract
$ openssl verify  ZScalar.crt
ZScalar.crt: OK

如果这些步骤不起作用,请发布“openssl verify”命令的输出,我也许可以进一步指导您。

除此之外,提取的证书转到“/etc/pki/ca-trust/extracted/openssl”或“/etc/pki/ca-trust/extracted/pem”。

答案3

1.获取ca证书的问题

openssl x509 -in ca.crt -noout -text |grep -i "issue"

输出如下:

Issuer: CN=something_strings

2.在/etc/pki/tls/certs/ca-bundle.crt中查找问题

grep -i "something_strings" /etc/pki/tls/certs/ca-bundle.crt

输出如下:

something_strings

如果你能得到结果,那么你的证书就添加成功了。

您需要重新启动服务器才能生效。

答案4

CA 认证应位于 ca-trust 捆绑包内的系统上。 “openssl x509”命令预计一次针对单个 PEM 编码证书进行操作。由于底层捆绑包含许多证书,因此仅显示第一个。

显示所有发行人:

openssl crl2pkcs7 -nocrl -certfile /etc/pki/tls/certs/ca-bundle.crt | openssl pkcs7 -print_certs | grep subject | head

相关内容