对不起,打开同一主题的另一个问题,但我认为这个子问题将湮没other one淹没。安装,以避免PKIX路径建设失败的错误
我遇到了上述错误消息,这是相当不确定的(至少对我而言)。调试输出显示证书已加载,然后仅显示提到的错误。我使用自己的CA链生成了测试证书: CA - > SubCA - > ClientCert
我尝试使用SSL连接同一台计算机上的客户端和服务器(以测试双向协议)。
我使用这些命令生成我的CA证书:
openssl req -batch -x509 -config ${ROOTCA_CONFIG} -newkey rsa:2048 -sha1 -nodes -out ${ROOTCA_CERT} -outform PEM -days 7300
openssl req -batch -config ${SUBCA_CONFIG} -newkey rsa:2048 -sha1 -nodes -out ${SUBCA_CSR} -outform PEM
openssl ca -batch -config ${ROOTCA_CONFIG} -policy signing_policy -extensions signing_req_CA -out ${SUBCA_CERT} -infiles ${SUBCA_CSR}
他们似乎要被罚款。唯一让我困惑的是:如果将两个证书连接成单个文件并使用该连接验证它们,那就没有问题。如果它尝试仅使用subCA或根CA进行验证,则验证将失败。
然后创建我的客户机/服务器证书:
openssl req -batch -config ${CLIENT_CONFIG} -newkey rsa:2048 -sha256 -nodes -out ${CLIENT_CSR} -outform PEM -keyout $1.key
openssl ca -batch -config ${SUBCA_CONFIG} -policy signing_policy -extensions signing_req -out ${CLIENT_CERT} -infiles ${CLIENT_CSR}
有了这个,我创建一个PKCS12文件在我的密钥库的使用方法:
openssl pkcs12 -export -inkey ${CONNECTOR_KEY} -in ${CONNECTOR_CERT} -out ${CONNECTOR_P12}
我通过调用我的脚本做两次,一次对于服务器和一次为客户端。我们称它们为client.cert和server.cert,即使客户端/服务器令人困惑,因为它们都是本地协议端点。
我然后使用这些命令来产生用于客户端和服务器的信任和密钥库:
keytool -keystore $2-truststore.jks -importcert -alias ca -file test_ca_certs/rootca.cert
keytool -keystore $2-truststore.jks -importcert -alias subca -file test_ca_certs/subca.cert
keytool -v -importkeystore -srckeystore $1 -srcstoretype PKCS12 -destkeystore $2-keystore.jks -deststoretype JKS
设$ 2上的客户端和服务器的每个(服务器信任等)和$ 1中可以相同$ {CONNECTOR_P12 } before(somefile.p12)
所以现在我有一个CA和SubCA的信任库和PKCS12令牌的密钥库。 Truststore在客户端和服务器端是相同的,Token几乎相同,但有不同的密钥对,因为它们每次都会生成。
的SSL调试输出指示证书加载:
keystore (...) has type [jks], and contains aliases [1].
***
found key for : 1
chain [0] = [
[
Version: V3
Subject: CN=cnname, OU=ouname, O=oname, L=location, ST=bavaria, C=DE
Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11
Key: Sun RSA public key, 2048 bits
modulus: 2999...
public exponent: 65537
...
...
keystore has type [jks], and contains aliases [ca, subca].
adding as trusted cert:
Subject: CN=my Root CA 2016, O=organization, C=DE
Issuer: CN=my Root CA 2016, O=organization, C=DE
Algorithm: RSA; Serial number: 0xfc8239c0355555c1
Valid from Wed Oct 19 10:14:36 CEST 2016 until Tue Oct 14 10:14:36 CEST 2036
adding as trusted cert:
Subject: CN=my SubCA 2016, O=Fraunhofer, C=DE
Issuer: CN=my Root CA 2016, O=Fraunhofer, C=DE
Algorithm: RSA; Serial number: 0x1
Valid from Wed Oct 19 10:14:38 CEST 2016 until Thu Oct 17 10:14:38 CEST 2024
有没有在我的理解一些基本的缺陷?再次,抱歉发布两个问题,但我开始相信我以更基本的方式做错了事。谢谢!