我们是否应该将密钥库和信任库指向同一个 .jks 文件?
我正在使用 SSL 握手来连接到 URL。为此,我生成了一个.csr文件并对其进行了签名。签名后,我创建了一个包含3个条目的my.jks文件
- 已签名的客户端证书
- 私钥
- 加州
我使用jetty作为服务器,并且我专门将密钥库和信任库设置为相同的jks文件,如下所示
-Djavax.net.ssl.keyStore=/home/keystore/my.jks
-Djavax.net.ssl.keyStorePassword=changeit
-Djavax.net.ssl.trustStore=/home/keystore/my.jks
-Djavax.net.ssl.trustStorePassword=changeit
它工作正常。但这是正确的方法吗?我认为密钥库应包含客户机证书和私钥,而信任库应包含 CA。但是当我尝试这样做时,我得到以下错误。
“javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 无法找到有效证书路径到请求的目标”
请就此提供建议。