gpt4 book ai didi

java - 无法找到到所请求目标的有效证书路径 - 即使在导入证书后也会出错

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:14 26 4
gpt4 key购买 nike

我有一个 Java 客户端尝试使用自签名证书访问服务器。

当我尝试发布到服务器时,出现以下错误:

unable to find valid certification path to requested target

在对这个问题做了一些研究之后,我做了以下事情。

  1. 将我的服务器域名保存为 root.cer 文件。

  2. 在我的 Glassfish 服务器的 JRE 中,我运行了这个:

    keytool -import -alias example -keystore cacerts -file root.cer
  3. 为了检查证书是否已成功添加到我的 cacert,我这样做了:

    keytool -list -v -keystore cacerts

    我可以看到证书存在。

  4. 然后我重新启动了 Glassfish 并重试了“发布”。

我仍然遇到同样的错误。

我觉得这是因为我的 Glassfish 实际上并没有读取我修改过的 cacert 文件,但可能是其他文件。

你们中有人遇到过这个问题并且可以帮助我朝着正确的方向前进吗?

最佳答案

不幸的是 - 它可能有很多东西 - 许多应用程序服务器和其他 java“包装器”很容易使用属性和它们“自己的”接受钥匙串(keychain)等等。所以它可能正在寻找完全不同的东西。

缺少桁架 - 我会尝试:

java -Djavax.net.debug=all -Djavax.net.ssl.trustStore=trustStore ...

看看有没有帮助。除了“全部”之外,还可以将其设置为“ssl”、 key 管理器和信任管理器——这可能对您的情况有所帮助。将其设置为“帮助”将在大多数平台上列出如下内容。

无论如何 - 请确保您完全理解 keystore (您在其中拥有私钥和证明您自己身份的证书)和信任库(确定您信任的人)之间的区别 - 以及您的自己的身份也有一个到根的信任“链”——它与任何到根的链是分开的,你需要弄清楚你信任“谁”。

all            turn on all debugging
ssl turn on ssl debugging

The following can be used with ssl:
record enable per-record tracing
handshake print each handshake message
keygen print key generation data
session print session activity
defaultctx print default SSL initialization
sslctx print SSLContext tracing
sessioncache print session cache tracing
keymanager print key manager tracing
trustmanager print trust manager tracing
pluggability print pluggability tracing

handshake debugging can be widened with:
data hex dump of each handshake message
verbose verbose handshake message printing

record debugging can be widened with:
plaintext hex dump of record plaintext
packet print raw SSL/TLS packets

来源:#见http://download.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#Debug

关于java - 无法找到到所请求目标的有效证书路径 - 即使在导入证书后也会出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57799661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com