gpt4 book ai didi

java - 安装证书后收到 sun.security.provider.certpath.SunCertPathBuilderException (Scala)

转载 作者:太空宇宙 更新时间:2023-11-04 12:19:08 24 4
gpt4 key购买 nike

我正在尝试下载 https://slashdot.org/ 的内容使用此代码:

scala.io.Source.fromURL("https://slashdot.org/", "ISO-8859-1").mkString

这会引发异常:

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)

为了解决这个问题,我从 https://slashdot.org/ 导出证书通过Chrome。我分配别名“slashdot”并将 vert 文件命名为“cert”。我使用命令安装

keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias斜线点 -file cert.cer证书已成功导入,但当我尝试保存 URL 时抛出相同的异常:

scala.io.Source.fromURL("https://slashdot.org/", "ISO-8859-1").mkString

我是否错过了安装证书的步骤?

在下载 https://slashdot.org/ 指定的内容时,我是否需要指定“认证路径”?证书:

enter image description here

更新:

我认为这可能与我的 Scala 设置有关,但下面的 Java 代码抛出了相同的错误:

import java.io.InputStream;
import java.nio.file.Files;
import java.net.URL;
import java.nio.file.StandardCopyOption;
import java.nio.file.Path;

public class download {
public static void main(String args[]) throws Exception{
URL website = new URL("https://slashdot.org/");
Path target = new java.io.File("c:\\download\\myfile.txt").toPath();

try (InputStream in = website.openStream()) {
Files.copy(in, target, StandardCopyOption.REPLACE_EXISTING);
}
}
}

最佳答案

我不是 100% 确定为什么我需要显式设置证书文件的路径,但这有效:

System.setProperty("javax.net.ssl.trustStore", "C:\\java\\jdk1.8.0_65\\jre\\lib\\security\\cacerts");

对此问题提供的评论归因于我尝试此解决方案。

关于java - 安装证书后收到 sun.security.provider.certpath.SunCertPathBuilderException (Scala),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39041924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com