ssl - CA 证书仅添加在 ca-bundle-trust.crt

标签 ssl curl openssl redhat ca

环境:

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

最佳答案

将证书导入 /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")

关于ssl - CA 证书仅添加在 ca-bundle-trust.crt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58725457/

相关文章:

security - 保护没有关联域名的公共(public)服务器 IP

python - cURL 查询有效,但 python 请求失败

azure - 如何修复 "Http11NioProtocol: Error reading request, ignored"

curl - 尝试 curl Neo4j 时必须提供查询参数

C++ CURL 无法设置 header

curl - 解析服务器云代码功能 'Cannot POST'

java - Java 7 中是否有等效的 getRequestedServerNames()?

bash - 如何将openssl s_client -connect stdout和stderr发送到/dev/null?

java - 默认 JDK 安装信任的证书

c++ - C++Builder 中的 "Could Not Load SSL Library"错误