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

时间:2018-06-08 15:55:04

标签: java spring spring-boot spring-tool-suite

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

 SunCertPathBuilderException: unable to find valid certification path to requested target

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

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

9 个答案:

答案 0 :(得分:8)

似乎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. 单击完成。

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

要导入

  • 以管理员身份打开“命令”提示符以导入证书
  • 进入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更改文件C:\ certificate-file-location \ saved-certificate-file.cer

(适当地替换您的java位置,证书文件位置和证书文件名。“ storepass”应为“ changeit”。)

重新启动STS

答案 1 :(得分:5)

在网址中

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

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

enter image description here

enter image description here

答案 2 :(得分:3)

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

<JAVA_HOME>/bin/keytool -import -alias CorpProxy -keystore <JAVA_HOME>/jre/lib/security/cacerts -file your_corp_cert.crt

默认情况下,系统将提示您输入密码存储区密码changeit

答案 3 :(得分:0)

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

现在工作正常。

答案 4 :(得分:0)

如果以上操作均无效,请尝试以下步骤。这对我来说很好,因为我也在公司网络下工作,遇到了同样的问题。

  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。

在我的情况下有效。谢谢。

答案 5 :(得分:0)

在eclipse.ini中添加以下内容

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

为我工作。

答案 6 :(得分:0)

在这种情况下,最好的做法是在浏览器中打开https://start.spring.io/,然后

并在Artifact字段中填写您的项目名称,在Group字段中填写您的项目基本包 点击

生成项目按钮

enter image description here

将把your-project-name.zip文件下载到downloads文件夹中。现在将此文件提取到您的sts工作区或您喜欢的任何地方。

现在将STS中的项目导入为现有的Maven项目

您已完成

答案 7 :(得分:0)

我能够通过两个步骤解决该问题。

  1. 首先,我将https://start.spring.io上存在的证书导入到jdk cacerts中。
  2. 最后,我在SpringToolSuite4.ini文件中添加了TrustStore和trustStore密码的路径。

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

    -Djava.net.ssl.trustStorePassword = changeit

答案 8 :(得分:0)

这个问题发生在我的一位同事身上,他无法在浏览器上打开 https://start.spring.io,也无法在 STS 上创建新项目。我们尝试使用上述所有解决方案,但没有一个奏效。

我们尝试的最后一招是通过以下方式清除您日常使用的浏览器的浏览器设置:

  1. Ctrl + Shift + Del
  2. 清除/删除所有设置,主要是 Cookie 和其他站点数据以及缓存的图像和文件 (浏览历史和密码可以免除)
  3. 重新打开浏览器。 [关闭并打开浏览器]
  4. 转到 https://start.spring.io,您将能够打开 Spring Initializer 站点以及从 STS 创建一个新的 Spring Starter 项目。 (不知道 IntelliJ 是否出现问题,但您可以按照所有步骤进行尝试)。