CA 证书仅添加到 ca-bundle-trust.crt
CA Cert are only added at ca-bundle-trust.crt
环境:
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/
.[=24 下添加证书=]
在上述 cmd 运行 之后,我看到证书仅添加到 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
。但是像 curl 这样的大多数应用程序都在 /etc/pki/ca-trust/extracted/openssl/ca-bundle.crt
引用 OS ca 信任,即 link 到 /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")
环境:
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/
.[=24 下添加证书=]
在上述 cmd 运行 之后,我看到证书仅添加到 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
。但是像 curl 这样的大多数应用程序都在 /etc/pki/ca-trust/extracted/openssl/ca-bundle.crt
引用 OS ca 信任,即 link 到 /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")