如何解决无法找到请求目标的有效认证路径从 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 交叉检查您的网址。
如果确实如此,您的选择是:
- 通过设置以下 JVM 选项启用自动中间证书下载(请参阅 https://security.stackexchange.com/a/168061):
-Dcom.sun.security.enableAIAcaIssuers=true
- 手动下载丢失的公共证书,并使用
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 举报,一经查实,本站将立刻删除。