我们有一个Java Web应用程序(客户端),用于调用具有自签名证书的站点(服务器)的Web服务。当我们从日志文件执行调用时,由CA颁发我们的证书:
default task-24, SEND TLSv1.2 ALERT: fatal, description = certificate_unknown
default task-24, WRITE: TLSv1.2 Alert, length = 2
[Raw write]: length = 7
0000: 15 03 03 00 02 02 2E .......
default task-24, called closeSocket()
default task-24, handling exception: 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`enter code here`
default task-24, called close()
我们的应用程序服务器是Wildfly 10,我们使用Spring Ws调用Web服务。 在我们的密钥库中,有一个我们称为服务器站点的自签名证书。
在发生此错误之前,我们有一个自签名证书客户端,该客户端调用自签名证书服务器,它正常工作!
鉴于我们现在拥有由CA颁发的证书,我们需要将新证书传达给服务器部分,以便继续使用其Web服务吗?
非常感谢
答案 0 :(得分:0)
鉴于我们现在拥有一个由CA颁发的证书 [针对客户端] ,我们是否需要将新证书传达给服务器以继续使用其Web服务?
假设服务器依赖客户端证书,则可以。
在开始设置时,您将完成以下操作。
这告诉客户端信任该服务器是它声称的身份,并告诉服务器信任该客户端是它声称的身份。另外,它告诉服务器该客户端在客户端列表中,以接受来自该客户端的请求。
现在,您已将客户的证书更改为由适当的CA颁发的证书。服务器可以检查此证书是否有效,但这不足以使服务器知道客户端“在列表中”。要建立后者,您需要在服务器上注册新的客户端证书,或者需要告诉服务器接受CA颁发的任何客户端证书作为“在列表上”。 (您需要确定哪个更适合您的用例。)