0

これは何よりも一般的な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 から初めて機能しただけです。なんで?

4

1 に答える 1

0

私が混乱しているのは、キーストアに何も追加せずにローカル開発マシンでこれが機能するのはなぜですか? つまり、ブラウザー経由で URL に接続したり、何も追加したりしませんでした。Eclipse から初めて機能しただけです。

あなたが投稿した情報は役に立ちません (これは私が言える最低限のことです)。
あなたが言っていることは2つのケースでのみ発生する可能性があります: 1)サーバーは、すでにJavaのトラストストア(Verisignなど)
にある信頼できるCAによって署名された証明書を使用します2)暗号スイート を有効にしましたcacert
anonymous

別のマシンにデプロイすると、検証について不平を言うハンドシェイク例外が発生するため、(1) を除外できると思います。
あなたが説明したことから、匿名暗号スイートを有効にしていないため、(2) も可能ではないようです。
だから....より正確な情報で投稿を更新してください。また、良いケースと悪いケースからのデバッグ情報

于 2012-04-30T20:46:09.713 に答える