2016-04-15 4 views
0

私はSOAP Webサービスの利用を開始するために認証に必要なJKSを持っています。 私のローカルマシン(ウィンドウ)上ですべて正常に動作しています。以下のためのEclipseでTomcatのための私の起動パラメータに以下を追加します。本番で要求されたターゲットへの有効な認証パスを実稼働環境で見つけることができない問題を解決するにはどうすればよいですか?

-Dsun.security.ssl.allowUnsafeRenegotiation=true -Djavax.net.ssl.keyStore="path\to\keystore\keystore.jks" -Djavax.net.ssl.keyStorePassword=passwordC -Djavax.net.ssl.keyStoreType=jks 

を(Ubuntuの)私たちは、次のしている:

-Dsun.security.ssl.allowUnsafeRenegotiation=true -Djavax.net.ssl.keyStore=/path/to/keystore/keystore.jks -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.keyStoreType=jks" 

私は、Java 1.7.0.80とTomcat 7.0.61を使用しています

私は、SOAP Webサービスに接続するとき、私は、次のスタックトレースを取得:

Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://www.correosexpress.com/wsp/services/GrabacionEnvio: 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:526) 
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1359) 
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1343) 
    at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56) 
    at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215) 
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) 
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:652) 
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) 
    ... 121 more 
Caused by: 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 

I Javaのバージョンであるtomcatのバージョンを確認しました。 また、JKSへのパスが正しいかどうか確認しました。

私のローカルマシンでは、他の証明書を手動でインストールしませんでした。つまり、jacのコンテンツに関連するカケートにはエントリがありません。

答えて

0
  1. 証明書が証明書リストに存在することをjava keytoolで確認してください。
  2. javaホームとjreが同じであることを確認してください。 ubuntuでは、あるバージョンのjavaとデフォルトのjreを持つjava_homeを他のバージョンと一緒に使用することができます(このコマンドを確認してください - update-alternatives --config java)
  3. 正しいバージョンのjavaに証明書を追加して証明書リスト正しいバージョンの証明書を使用していることを確認してください。
+0

証明書がcacertsに存在する必要がありますか? – Nazeem

+0

いいえ、ubuntuでcacertsの証明書はjavaによって無視されます。私はjavaキーストアを意味する – TheHckblues

関連する問題