【发布时间】:2013-11-01 06:14:45
【问题描述】:
- 处理请求时捕获 I/O 异常 (org.apache.axis2.AxisFault):sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到有效的证书路径到请求的目标
从 jdk 1.5 迁移到 jdk 1.7 后,我得到了 sun.security.validator.ValidatorException。
步骤: 将 jdk 1.5 替换为 1.7(包括 jre)。 用jdk1.7编译代码。编译成功。 在使用服务器提供的证书访问 url 时,我在 jdk1.7 中得到 sun.security.validator.ValidatorException。但是在jdk1.5中没有抛出异常。 在 cacerts 文件中,我导入了别名为 xxxx 的特定证书。如果我在证书中使用域名作为别名的 jdk1.7 名称访问 url,则不会引发异常并且工作正常......
将 jdk1.5 迁移到 jdk1.7 需要做些什么吗? 我真的在上述过程中遗漏了什么吗?
任何帮助将不胜感激...
【问题讨论】:
-
如果您在浏览器中访问 URL 或使用
curl会怎样? -
您的证书是否包含关键扩展? JDK Bug 6668231 提到 Java 5 和 7 的行为差异。它还说 ... 如果遇到无法识别的关键扩展,则必须拒绝证书/CRL。
-
您将证书导入到哪个 cacerts 文件中?运行时实际使用的是哪个 JRE?例如,在 Windows 上,安装 JDK 时,实际上是在安装 2 个 JRE……一个在 JDK 文件夹中,一个在 Java 文件夹中。
标签: java ssl-certificate x509certificate