我有一个Java客户端试图使用自签名证书访问服务器。
当我尝试发布到服务器时,出现以下错误:
无法找到到请求目标的有效认证路径
在对该问题进行了一些研究之后,我进行了以下工作。
root.cer
文件。keytool -import -alias example -keystore cacerts -file root.cer
keytool -list -v -keystore cacerts
我仍然收到相同的错误。
我觉得这是因为我的Glassfish实际上并未读取我修改过的cacert文件,而是可能读取了其他文件。
你们中有人遇到过这个问题,可以将我推向正确的方向吗?
不幸的是-可能有很多事情-许多应用程序服务器和其他Java“包装器”都倾向于使用属性,它们的“自己”承担钥匙串,而没有。因此,它可能正在寻找完全不同的东西。
缺少桁架-我会尝试:
java -Djavax.net.debug=all -Djavax.net.ssl.trustStore=trustStore ...
看看是否有帮助。除了“全部”之外,还可以将其设置为“ ssl”,密钥管理器和信任管理器-这可能对您有帮助。将其设置为“帮助”将在大多数平台上列出如下内容。
无论如何-请确保您完全了解密钥库(在其中您拥有证明自己的身份的私钥和证书)和信任库(确定您信任的人)之间的区别-并且您自己的身份也对根有信任的“链”-这与到根的任何链是分开的,您需要弄清楚您对“谁”的信任。
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句