セキュリティで保護されたサーバー (SSL と CA が構成された Apache/Tomcat) で公開されている SOAP サービスを呼び出そうとしています。
サービスは、承認を処理するために .P12 (PKCS#12) 証明書を想定しています。
SOAPUIを使用したテストはうまく機能します (サービスが呼び出され、正しい結果が返されました) 。
キーストア内に証明書をロードするために KeyTool を処理する必要があると思いますが、それを正しく理解することはできません。
それに加えて、SOAPUIはJVM上で実行されており、JRE keyStore内に証明書をロードする必要はありません(P12証明書を指すだけでよいため)ので、証明書を「ロード」する方法があると思います呼び出し時にオンデマンド?
いくつかの調査の後、実行するCXF構成がいくつかあるようです(ドキュメント)
コード: github リポジトリ
VM 引数:
-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)
ありがとう