rGA*_*145 6 centos certificates
CentOS Linux release 7.6.1810 (Core)
Kernel 5.1.11-1.el7.elrepo.x86_64
Run Code Online (Sandbox Code Playgroud)
我把一个证书文件 /etc/pki/ca-trust/source/anchors
文件看起来像这样:
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIQeqkpty5ghoxP8YfCRe+7qjANBgkqhkiG9w0BAQUFADBP
some strings
FnpKVwAq6UcYOu4AoXweaqOOMsLNSw==
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
在update-ca-trust extract
我希望在捆绑文件中看到我的证书/etc/pki/tls/certs/ca-bundle.crt
但其中没有任何新内容之后。并ls -al
告诉我最新的编辑时间,所以它是在 2 个月前更改的,而不是现在。
最初我用.crt
文件尝试这个。但是重命名.crt
为.pem
并没有解决我的问题。我也试过update-ca-trust enable
和update-ca-trust force-enable
提取物之前,但它并没有帮助。
/var/log/messages
对此只字未提。
我的外壳会做什么来修复它?
TL; 博士
将update-ca-trust
您的证书文件将无法提取到ca-bundle.crt
,除非这个成功:
openssl x509 -noout -text -in <cert_file> | grep --after-context=2 "X509v3 Basic Constraints" | grep "CA:TRUE"
Run Code Online (Sandbox Code Playgroud)
我在这个问题上花了几个小时。它的根在一个名为Basic Constraints的 X.509 扩展中,用于标记证书是否属于 CA。
我不起眼的发现:
update-ca-bundle
工具实际上是一个 shell 脚本,因此很容易窥视其内部p11-kit
每次使用不同的过滤器并创建不同的包文件多次调用实用程序。ca-bundle.crt
实际上tls-ca-bundle.pem
是p11-kit
使用ca-anchors
过滤器生成的文件的链接。因此它会忽略除“CA 证书”之外的所有证书。openssl x509 -noout -text -in <cert_file>
p11-kit
并且不会导出到所需ca-bundle.crt
文件。请随时在评论中更正此问题。