Spring工具套件-SunCertPathBuilderException:无法找到到请求目标的有效证书路径

shi*_*pta 0 java spring spring-tool-suite spring-boot

我正在研究STS,并且在创建新的spring-boot项目时显示以下错误:

 SunCertPathBuilderException: unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)

因为它访问https://start.spring.io作为服务URL。

我在公司网络中工作,他们有自己的证书和安全规则。我调查了Web,但找不到STS的任何明确解决方案。如何在STS中为给定的URL添加认证路径。任何帮助表示赞赏。

use*_*853 11

看起来 http 现在被重定向到 https。因此,将 https 更改为 http 可能不起作用。我对数字证书几乎不熟悉。但是,我只是列出了我必须做的事情才能让它为我工作。这也许是@Strelok 所建议的。

我使用的是 Windows 10 和 JDK 1.8.0_144 64 位。我也支持公司代理。我做了以下工作来让它为我工作。如果您处于类似情况,它可能对您有用。

导出公司证书(可能还有其他更简单的方法)

  1. 在 Chrome 上,我去了https://start.spring.io
  2. 在地址栏上单击 https 旁边的“锁定”符号。
  3. 在随后的弹出窗口中选择了“证书(有效)”。
  4. 在出现的对话框中,单击“证书路径”选项卡,从证书路径树下选择根节点,然后单击“查看证书”
  5. 在出现的对话框中,单击“详细信息”选项卡,然后单击“复制到文件”
  6. 这将打开“导出向导”,单击“下一步”。
  7. 将证书格式保留为默认的“DER 编码..”,单击“下一步”。
  8. 为证书提供了文件名(.cer 扩展名)。
  9. 单击完成。

上述步骤将证书导出到我导入信任库 (cacerts) 的文件中。

导入

  • 以管理员身份打开“命令”提示以导入证书
  • 进入Java安装的bin目录(如果你的路径中有jre/bin就不需要这一步)
  • 运行以下内容:

    C:\Program Files\Java\jre1.8.0_144\bin>keytool -importcert -alias your-alias -keystore "C:\Program Files\Java\jre1.8.0_144\lib\security\cacerts" -storepass changeit -file C:\certificate-file-location\saved-certificate-file.cer

(根据需要替换您的 java 位置、证书文件位置和证书文件名。“storepass”应为“changeit”。)

重新启动 STS


sun*_*t84 8

我遇到了相同的问题,并尝试了以下方法:窗口->首选项->网络连接将模式更改为手动

现在工作正常。


Str*_*lok 6

最简单的解决方案是将公司证书安装到cacertsJDK 的密钥库中。

<JAVA_HOME>/bin/keytool -import -alias CorpProxy -keystore <JAVA_HOME>/jre/lib/security/cacerts -file your_corp_cert.crt
Run Code Online (Sandbox Code Playgroud)

系统将提示您输入changeit默认的密钥库密码。

  • 这应该是可接受的答案,而不是上面的解决方法。另外,这将有助于解决其他问题,例如从市场上安装插件。 (3认同)

小智 6

如果以上都不起作用,请尝试以下步骤。它对我来说很好用,因为我也在公司网络下工作,遇到了同样的问题。

  1. 如果打开,请关闭 STS 工具。
  2. 找到 STS.ini 文件(主要是您安装了 STS 工具和 STS.exe 的位置)
  3. 编辑 STS.ini。在底部添加以下两行(使用您的JDK位置,下面只是一个示例)

    -Djavax.net.ssl.trustStore=C:\Program Files\Java\jdk1.8.0_20\jre\lib\security\cacerts

    -Djava.net.ssl.trustStorePassword=changeit

  4. 保存 STS.ini 并重新启动 STS.exe。

它适用于我的情况。谢谢你。


Zac*_*ood 5

在URL http://start.spring.io中尝试使用http代替https

将解决以下错误“ SunCertPathBuilderException:无法找到到请求目标的有效证书路径

在此处输入图片说明

在此处输入图片说明

  • 这在 Spring Tool Suite 3 版本中不起作用:3.9.9.RELEASE 当我添加 http://start.spring.io 时,它会自动更改为 https://start.spring.io。 (7认同)
  • 好像 http 被重定向到 https,所以这可能不起作用。我添加了一个答案来列出我为使其正常工作所做的事情。 (2认同)