我正在Spring Boot中创建一个微服务,该微服务需要与现有的身份验证服务进行通信。
我已经在Spring Boot中设置了OAuth配置,但是当它尝试与外部身份验证服务进行对话时,我看到了以下错误。
Could not fetch user details: class org.springframework.web.client.ResourceAccessException, I/O error on GET request for "https://somedomain.com/profile": sun.security.validator.ValidatorException: 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: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
这似乎是因为远程身份验证服务上的证书无效,所以不喜欢它。
我该如何解决?
我尝试使用openssl下载域证书,并将其添加到Java的密钥库中,但这不能解决问题。
要获取并安装证书,我执行了以下操作;
openssl s_client -showcerts -connect somedomain.com:443
keytool -importcert -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/jre/lib/security/cacerts -storepass changeit -file /Users/myuser/Downloads/plplpl.crt
询问我是否要信任证书,我选择了。