使用CXF客户端调用安全的CA https SOAP服务

时间:2013-07-31 09:10:26

标签: java ssl

我正在尝试调用在安全服务器上发布的SOAP服务(配置了SSL和CA的Apache / Tomcat)

服务期望.P12(PKCS#12)证书处理授权。

我使用 SOAPUI 进行的测试效果很好(服务被调用并返回正确的结果

我想我要处理KeyTool来加载我的密钥库中的证书,但我无法正确理解它。

除此之外, SOAPUI 在JVM之上运行,无需在JRE keyStore中加载任何证书(因为它只需指向P12证书),所以我认为有没有办法在调用时“加载”demande上的证书?

经过一些调查后,似乎有一些CXF配置要做(documentation

代码github repository

虚拟机参数

-Djavax.net.ssl.keyStoreType=pkcs12
-Djavax.net.ssl.keyStore=c:/job/CDBXXX-XXXXX.p12
-Djavax.net.ssl.keyStorePassword=******

记录(更多here):

main, SEND TLSv1 ALERT:  fatal, description = certificate_unknown
main, WRITE: TLSv1 Alert, length = 2
main, called closeSocket()
main, 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
main, called close()
main, called closeInternal(true)

感谢的

1 个答案:

答案 0 :(得分:1)

javax.net.ssl.SSLHandshakeException表示您遇到以下问题之一:

  1. 客户端密钥未由服务器信任库中的某个CA签名。
  2. 客户端密钥由中间CA签名,并且您在服务器信任库中没有完整的CA链。