我们应该将KeyStore和TrustStore指向同一个.jks文件吗?

Cod*_*LaY 10 java keytool

我正在使用SSL握手连接到URL.为此,我生成了一个.csr文件并将其签名.签名后,我创建了一个my.jks文件,其中包含3个条目

  1. 签署客户证书
  2. 私钥
  3. CA

我使用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
Run Code Online (Sandbox Code Playgroud)

它工作正常.但这是正确的方法吗?我认为密钥库应该包含客户端证书和私钥,信任库应该包含CA. 但是当我尝试这样做时,我得到以下错误.

"javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径"

请就此提出建议.

use*_*421 8

不可以.信任库只包含公共数据:您信任的CA的公共证书.KeyStore包含私钥及其证书:您的数字身份.它们甚至可能由不同的人控制.不要混淆他们的功能.


归档时间:

查看次数:

5782 次

最近记录:

8 年,1 月 前