20

を使用して JAX-WS クライアントで証明書の検証を無効にするにはどうすればよいですjavax.xml.ws.Serviceか?

SSLSocketFactory ですべて信頼できる TrustManager を作成して、それを BindingProvider にバインドしようとしました

SSLContext sc = SSLContext.getInstance("SSL"); 
sc.init(null, trustAllCerts, new java.security.SecureRandom()); 

Map<String, Object> ctxt = ((BindingProvider) wsport ).getRequestContext(); 
ctxt.put(JAXWSProperties.SSL_SOCKET_FACTORY, sc.getSocketFactory()); 

しかし、私はまだ得ていますException: unable to find valid certification path to requested target

しかし、使用するだけで機能します

HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 

または、私が作成した をjavax.xml.ws.Service使用する方法はありHttpsURLConnectionますか?

4

4 に答える 4

19

ここで解決策を見つけました: http://schrepfler.blogspot.com.br/2009/06/relaxing-ssl-validation-for-jaxws.html

次のように、メイン クラスの静的ブロックで 2 つの静的メソッドを呼び出すソリューションを使用しています。

static {
    SSLUtilities.trustAllHostnames();
    SSLUtilities.trustAllHttpsCertificates();
}

お役に立てれば

編集: David J. Liszewski が指摘したように、これにより、この JVM からのすべての接続で SSL/TLS が中断されます。だから、それを覚えておいてください。

于 2013-01-28T19:58:13.103 に答える