Java 当服务器具有来自CA的有效证书时,web服务(https)的客户端JVM是否会引发SSL异常?

Java 当服务器具有来自CA的有效证书时,web服务(https)的客户端JVM是否会引发SSL异常?,java,security,ssl,certificate,Java,Security,Ssl,Certificate,我在远程服务器上的tomcat上部署了一个web服务。 我已经将其设置为只能通过HTTPS访问。 为此,我生成了一个证书签名请求(CSR),并使用它从VeriSign获取一个临时证书 我的web服务客户端在本地计算机上。如果我尝试访问该服务,它将抛出一个javax.net.ssl.SSLHandshakeException:找不到请求目标的有效认证路径 如果我将证书安装到本地Java的密钥库中,问题就会得到解决 我的问题是,如果我在tomcat服务器上安装了来自CA的有效SSL证书, 即使我没有

我在远程服务器上的tomcat上部署了一个web服务。 我已经将其设置为只能通过HTTPS访问。 为此,我生成了一个证书签名请求(CSR),并使用它从VeriSign获取一个临时证书

我的web服务客户端在本地计算机上。如果我尝试访问该服务,它将抛出一个
javax.net.ssl.SSLHandshakeException:找不到请求目标的有效认证路径
如果我将证书安装到本地Java的密钥库中,问题就会得到解决

我的问题是,如果我在tomcat服务器上安装了来自CA的有效SSL证书,
即使我没有将证书导入本地密钥存储区,我是否会收到此客户端错误?

不,您不会。默认情况下,JVM附带根ca。旧版JVM(1.5.xx版本)没有所有的根CA,但是如果您有Verisign的证书,这应该不会有问题。

Java已经安装了许多根CA证书。只要您使用其中一个流行的CA获取证书,客户端就不会收到错误。

虽然您应该没问题,但最好不仅包括站点的实际证书,还包括通向根证书的整个链。(有时您会遇到缺少一些中间证书的客户端,这可能会导致恼人的调试问题。)