当前位置: 首页 > 知识库问答 >
问题:

KeyStore和TrustStore不匹配

姜宏盛
2023-03-14

他们在两边配置了相同的keystore和truststore文件。我已经打开了它们的keystore和truststore,这是它们的构建方式:
keystore
entry1-server
cert[1]md5:x
cert[2]md5:y
cert[3]md5:Z

TrustStore
entry1-root
证书[1]MD5:Z
entry2-intermedium
证书[1]MD5:Y

在我看来,truststore中缺少keystore(使用MD5 X)中的证书[1]这一事实是有问题的。

我说的对吗?

你能看到他们的keystore和truststore的构建方式有什么其他问题吗?

共有1个答案

仰城
2023-03-14

看起来您的问题与密钥库和/或信任库中丢失的一些证书有关。

一般说来,当客户机向服务器发送请求时,服务器提供其证书链,其中必须包括服务器的证书作为第一个条目,然后是其颁发者和其他颁发者。后面的每个证书都必须直接证明前面的证书,除非它存在于客户端的truststore中。

您需要检查keystore中的证书[1]是否是自签名证书。您可以通过以下方式实现这一点:

keytool -list -v -keystore [keystore-file-name].jks
keytool -list -keystore [keystore-file-name].p12 -storetype PKCS12 -v
  • 生成一个由“Y”或“Z”签名的新“证书[1]”,并将其添加到密钥库中或替换现有的证书。是否替换或添加取决于代码读取证书的方式。替换可能是更好的选择。
  • 将密钥库的“证书[1]”的当前“颁发者”添加到信任库中。

如果keystore中的“cert[1'”的“颁发者”的证书已经存在于truststore中,我希望SSL握手会成功。

以下是如何将颁发者添加到TrustStore中:

keytool -export -keystore [issuer-keystore].jks -alias [alias]-file [output-file-name].cer
keytool -importcert -file [output-file-name].cer -keystore [truststore-file-name].jks -alias [alias]
 类似资料:
  • 我在理解密钥库和信任库的概念方面有问题。 哪个应用程序保留keystore,哪个应用程序保留truststore? 我在网上找不到任何好的资源。如果有人能清楚地描述truststore和KeyStore之间的区别,我会非常感激吗?

  • null 为了使SSL在客户机和服务器之间工作,我只需要在使用终端命令(Keytool和openssl)生成用于相互身份验证的keystore和truststore的逐步指南中得到帮助。

  • 我在密钥库中有一个客户端证书,在信任库中有服务器的公共证书。 http-bio-8080-exec-10,处理异常:javax.net.ssl.sslhandShakeException:sun.security.validator.validatoreXception:PKIX路径构建失败:sun.security.provider.certpath.suncertPathBuilderExce

  • JSSE允许用户通过指定javax.net.ssl.*参数来提供默认的信任存储和密钥存储。我想为我的应用程序提供一个非默认的TrustManager,同时允许用户像往常一样指定KeyManager,但是似乎没有任何方法可以实现这一点。 http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.h

  • 问题内容: JSSE允许用户通过指定javax.net.ssl。*参数来提供默认的信任库和密钥库。我想为我的应用程序提供一个非默认的TrustManager,同时允许用户照常指定KeyManager,但是似乎没有任何方法可以实现此目的。 细节 http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGui

  • 我已经将JVM的Xmx参数设置为5120,但是当java进程(tomcat)运行时,我看到MaxHeapSize与Xmx值不匹配,它停留在2570,这对我来说很奇怪,对此任何想法都非常感谢!! PS的输出: /usr/bin/java-dnop-djava.util.logging.manager=org.apache.juli.classloaderlogmanager ITGC-djava.e