ssl – 无法找到有效的证书路径请求目标 – 错误,即使在证书导入后

Possible Duplicate:
07000

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

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

unable to find valid certification path to requested target

经过对这个问题的一些研究,我然后做了以下。

>将我的服务器域名保存为root.cer文件。
>在我的Glassfish服务器的JRE,我运行这:
keytool -import -alias示例-keystore cacerts -file root.cer。
>要检查证书已成功添加到我的cacert,我这样做:
keytool -list -v -keystore cacerts
我可以看到证书是存在的。
>然后我重新启动Glassfish并退役了’post’。

我仍然得到同样的错误。

我有一种感觉,这是因为我的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

http://stackoverflow.com/questions/9210514/unable-to-find-valid-certification-path-to-requested-target-error-even-after-c

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ssl – 无法找到有效的证书路径请求目标 – 错误,即使在证书导入后