0

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

该服务需要一个 .P12 (PKCS#12) 证书来处理授权。

我使用SOAPUI的测试运行良好(服务调用并返回了正确的结果

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

除此之外,SOAPUI运行在 JVM 之上,不需要在 JRE keyStore 中加载任何证书(因为它只需要指向 P12 证书),所以我认为有一种“加载”证书的方法在调用时按要求?

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

代码github仓库

虚拟机参数

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

日志(更多在这里):

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)

谢谢

4

1 回答 1

1

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

  1. 客户端密钥未由服务器信任存储中的 CA 之一签名。
  2. 客户端密钥由中间 CA 签名,并且您在服务器信任存储中没有完整的 CA 链。
于 2013-07-31T13:11:05.810 回答