2016-04-26 13 views
0

次のコードに従って、TLSv1.2、TLSv1、SSLv3にプロトコルを設定するにはどうすればよいですか? SOAPUIを使用してCXFでSOAPを設定し、SSLとTLSプロトコルのバージョンを設定します

、私は次の設定使用してサービスを要求することができるよ:-Dsoapui.https.protocols = TLSv1.2、TLSv1が、SSLv3の

CXFを使用して、私は取得しています「javax.net .ssl.SSLHandshakeException:いいえ、適切なプロトコル(プロトコルが無効になっているか、暗号スイートが不適切な場合)」

私はのSSLv3を削除していた場合、出力は 『javax.net.ssl.SSLHandshakeException:受信致命的な警告:握手_』

SoapとSSLに関する私の貧しい知識を申し訳ありません...

URL wsdlLocation = this.getClass().getResource("service.wsdl"); 

Service service = new Service(wsdlLocation); 
Soap stub = service.getSoap(); 

BindingProvider bp = (BindingProvider) stub; 

Map<String, Object> context = bp.getRequestContext(); 

context.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "https://url.to.service/service"); 

Client client = ClientProxy.getClient(stub); 

HTTPConduit httpConduit = (HTTPConduit) client.getConduit(); 
try { 
    TLSClientParameters tlsParams = new TLSClientParameters(); 
    tlsParams.setDisableCNCheck(true); 
    tlsParams.setSecureSocketProtocol("SSLv3"); 

    KeyStore keyStore = KeyStore.getInstance("JKS"); 
    String trustpass = "pass"; 

    File truststore = new File("/home/user/keystore.jks"); 
    keyStore.load(new FileInputStream(truststore), trustpass.toCharArray()); 
    TrustManagerFactory trustFactory = TrustManagerFactory 
      .getInstance(TrustManagerFactory.getDefaultAlgorithm()); 
    trustFactory.init(keyStore); 
    TrustManager[] tm = trustFactory.getTrustManagers(); 
    tlsParams.setTrustManagers(tm); 

    truststore = new File("/home/user/keystore.jks"); 
    keyStore.load(new FileInputStream(truststore), trustpass.toCharArray()); 
    KeyManagerFactory keyFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); 
    keyFactory.init(keyStore, trustpass.toCharArray()); 
    KeyManager[] km = keyFactory.getKeyManagers(); 
    tlsParams.setKeyManagers(km); 

    FiltersType filter = new FiltersType(); 
    filter.getInclude().add(".*_EXPORT_.*"); 
    filter.getInclude().add(".*_EXPORT1024_.*"); 
    filter.getInclude().add(".*_WITH_DES_.*"); 
    filter.getInclude().add(".*_WITH_NULL_.*"); 
    filter.getExclude().add(".*_DH_anon_.*"); 
    tlsParams.setCipherSuitesFilter(filter); 

    httpConduit.setTlsClientParameters(tlsParams); 
} catch (Exception e) { 
    LOG.error(e.getMessage()); 
} 
私は同じ問題に遭遇し、変更によって tlsParams.setSecureSocketProtocol("TLSv1");

あなたはどのプロトコルのバージョンを確認する必要がありお知らせ(SSLv1へ tlsParams.setSecureSocketProtocol("SSL"); からプロトコル名を、それを解決した

答えて

関連する問題