Web Services 在Java中信任证书颁发机构

hivapdat  于 2022-11-15  发布在  Java
关注(0)|答案(1)|浏览(167)

我尝试在我的Sping Boot 应用程序中使用一些Web服务,当我尝试执行请求时,我在swagger中遇到此错误。我尝试在浏览器(https://ip:port)中搜索Web服务的URL,然后我遇到一个安全错误,告诉我证书颁发机构无法识别“SEC_ERROR_UNKOWN_ISSUER”。我认为问题来自那里。我尝试从浏览器中导出证书并将其导入到我的cacerts中,但它不起作用。我的代码中是否存在问题是导致此错误的原因?

{
  "timestamp": "2021-11-16T08:11:16.189+00:00",
  "status": 400,
  "error": "Bad Request",
  "message": "I/O error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target",
  "path": "***"
}
34gzjxbg

34gzjxbg1#

好吧,我可能会晚了答案,但我无论如何要张贴在这里,因为我很肯定有人会需要它在未来。
经过几个小时的搜索,我找到了原因。我还没有将自签名的根CA证书导入到java的cacerts密钥库中,因此,我一直得到相同的异常。
从其中一个堆栈溢出应答将根CA添加到cacerts密钥库的命令。

keytool -import -alias mycert -keystore  "<<your-JAVA_HOME-directory>>\jre\lib\security\cacerts" -file mycert.cer

然而,它对我不起作用,我不得不将它指向keytool -import -alias mycert -keystore "<<your-JAVA_HOME-directory>>\lib\security\cacerts" -file mycert.cer到我的jdk而不是jre文件夹。
密钥库的默认密码为“changeit”

相关问题