微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法找到请求目标的有效认证路径从 URL 加载 RDF 时

如何解决无法找到请求目标的有效认证路径从 URL 加载 RDF 时

我正在尝试将 URL 中的一些三元组加载到 GraphDB 9.1.1 中。过去,我使用基于 Web 的 Workbench 或通过 rest/data/import/upload/<repository>/url 端点这样做没有任何问题。

一个示例网址是 https://bitbucket.org/uamsdbmi/dron/raw/master/dron-full.owl

当我今天尝试加载三元组时,我得到

sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效认证路径

我的笔记本电脑上运行着 GraphDB 9.5.0,可以从那里的 URL 加载三元组。我可能不一定实施了我的科学计算部门在他们的服务器上使用的所有相同的安全措施。

部分响应A'B的回答,企业服务器正在使用

java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01,mixed mode)

我的笔记本电脑正在使用

openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01,mixed mode)

解决方法

sun.security.provider.certpath.SunCertPathBuilderException 通常是由于缺少中间 SSL 证书造成的:您可能需要使用 https://www.ssllabs.com/ssltest/analyze.html 交叉检查您的网址。

如果确实如此,您的选择是:

  1. 通过设置以下 JVM 选项启用自动中间证书下载(请参阅 https://security.stackexchange.com/a/168061):
    -Dcom.sun.security.enableAIAcaIssuers=true
  1. 手动下载丢失的公共证书,并使用 keytool 将它们添加到密钥库中(从旧笔记复制,您的里程可能会有所不同……),确保以 GraphDB 使用的 JRE 安装为目标:立>
     sudo $JAVA_HOME/bin/keytool \
        -import -alias "{your alias here}" -file {public certificate here}.crt \
        -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
,

我们的科学计算服务器会对无法识别的 URL 进行一些代理/过滤/重定向,因此与本地代理服务器关联的证书与下载源 (butbucket.com) 提供的证书之间确实存在不匹配

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?