Java 服务器上的SSL不';t工作,在本地机器上工作正常

Java 服务器上的SSL不';t工作,在本地机器上工作正常,java,ssl,cxf,Java,Ssl,Cxf,这更像是一个一般的java SSL问题,而不是任何问题 我正在使用CXF连接到一个安全的web服务。当我在本地Windows开发机器上运行它时,它可以连接并工作,但是,一旦我将它部署到我的应用程序服务器(glassfish 3.1),它就不再工作了。我明白了: Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://vendorUrl: sun.security.validato

这更像是一个一般的java SSL问题,而不是任何问题

我正在使用CXF连接到一个安全的web服务。当我在本地Windows开发机器上运行它时,它可以连接并工作,但是,一旦我将它部署到我的应用程序服务器(glassfish 3.1),它就不再工作了。我明白了:

Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://vendorUrl: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1458)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1443)
        at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:659)
我曾尝试将证书添加到domain\config\cacerts.jks文件、lib\security\cacerts文件等中。但由于这一问题已经被问了很多次,我并不想问为什么这不起作用(尽管我想知道为什么)

让我感到困惑的是,为什么在我本地的开发机器上工作而不向任何密钥库添加任何内容?我的意思是,我没有通过浏览器连接到他们的URL,我没有添加任何东西-它只是第一次在Eclipse中工作。为什么?

让我困惑的是,为什么这会在我本地的开发机器上工作 不向任何密钥库添加任何内容?我的意思是,我没有连接到 他们的URL是通过浏览器的,我没有添加任何内容——它只是起作用了 第一次,来自Eclipse

您发布的信息没有帮助(这是我至少可以说的)。
您所说的仅在两种情况下发生:
1) 服务器使用已在java信任库
cacert
(例如Verisign)中的受信任CA签名的证书
2) 您已经启用了
匿名
密码套件

因为当您将其部署到另一台机器上时,会出现握手异常,抱怨验证,所以我想我们可以排除(1)。
从您的描述来看,(2)似乎也不可能,因为您尚未启用匿名密码套件。

所以请用更准确的信息更新您的帖子。另外,调试好的和坏的情况下的信息

对不起,我对SSL是相当陌生的,所以我不确定什么会有帮助。我会再深入一点。FWIW,除了SSL之外,这个应用程序还使用wssj,我不确定这可能与此有关。可能您正在使用的两台机器有不同的JRE,配置了不同的
cacerts
。使用
keytool
列出它们的内容。