【问题标题】:CA Cert are only added at ca-bundle-trust.crtCA 证书仅添加在 ca-bundle-trust.crt
【发布时间】:2020-03-02 15:50:39
【问题描述】:

环境:

Red Hat Enterprise Linux Server release 7.7 (Maipo)
# openssl version
OpenSSL 1.0.2g  1 Mar 2016

因此使用 OpenSSL 生成自签名证书,并将 cacert.pem 放在 /etc/pki/ca-trust/source/anchors/ 下。

现在根据update-ca-trust 的人所说,应该运行cmd 将证书添加到信任库中,并且证书将添加到/etc/pki/ca-trust/extracted/ 下。

运行上述 cmd 后,我看到证书仅添加到 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt。但是大多数像 curl 这样的应用程序都会在/etc/pki/ca-trust/extracted/openssl/ca-bundle.crt 上引用 OS ca 信任,它链接到 /etc/pki/tls/certs/ca-bundle.crt

curl -v https://172.21.19.92/api
* About to connect() to 172.21.19.92 port 443 (#0)
*   Trying 172.21.19.92...
* Connected to 172.21.19.92 (172.21.19.92) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt

我知道传递--cacert 选项将是克服它的一种方法,但我想知道为什么update-ca-trust 只更新ca-bundle-trust.crt 而不是ca-bundle.crt 或java Keystore 提取一个/etc/pki/ca-trust/extracted/java/cacerts

【问题讨论】:

  • 我也遇到过这个问题。 CentOS 7.7.1908 :(
  • 你的解决方案是什么?
  • 为了回答我自己的评论,我只是手动将证书添加到 ca-bundle.crt

标签: ssl curl openssl redhat ca


【解决方案1】:

导入证书到/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem的实际命令是:

/usr/bin/p11-kit extract --format=pem-bundle --filter=ca-anchors --overwrite --comment --purpose server-auth $DEST/pem/tls-ca-bundle.pem

所以这里的过滤器是--filter=ca-anchors + --purpose server-auth。当您生成证书时,您必须明确添加用途extendedKeyUsage=serverAuth

openssl x509 -req -in $SRV_NAME.csr -CA $CA_NAME.crt -CAkey $CA_NAME.key -passin pass:"$PASS" -out $SRV_NAME.crt \
  -days 3650 -CAcreateserial \
  -extensions v3_ca \
  -extfile <(echo "[v3_ca]"; echo "extendedKeyUsage=serverAuth"; echo "subjectAltName=$SRV_DNS_NAMES_TEXT,email:$SRV_EMAIL")

【讨论】:

    猜你喜欢
    • 2021-01-17
    • 2022-10-03
    • 1970-01-01
    • 2013-03-25
    • 2014-05-22
    • 2019-11-15
    • 2010-09-25
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多