2015-12-10 53 views
0

我試圖通過pass或disableCertificateValidation()並嘗試使https連接到我的SOAP Web服務。當我這樣做時拋出以下錯誤:javax.net.ssl.SSLException:無法識別的SSL消息,明文連接,無法找到公用名稱

13:21:25.476 [WARN ] o.a.cxf.phase.PhaseInterceptorChain - Interceptor for {http:/****.xsd/}****ervice#{http://****.xsd/}get****servicePort has thrown exception, unwinding now 
org.apache.cxf.interceptor.Fault: Could not send Message. 
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) ~[cxf-core-3.0.6.jar:3.0.6] 
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) ~[cxf-core-3.0.6.jar:3.0.6] 
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:516) [cxf-core-3.0.6.jar:3.0.6] 
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:425) [cxf-core-3.0.6.jar:3.0.6] 
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326) [cxf-core-3.0.6.jar:3.0.6] 
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279) [cxf-core-3.0.6.jar:3.0.6] 
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) [cxf-rt-frontend-simple-3.0.6.jar:3.0.6] 
    at org.apache.cxf.frontend.ClientProxy.invoke(ClientProxy.java:81) [cxf-rt-frontend-simple-3.0.6.jar:3.0.6] 
    at org.apache.cxf.common.util.CglibProxyHelper$1.intercept(CglibProxyHelper.java:67) [cxf-core-3.0.6.jar:3.0.6] 

有人可以幫忙嗎?

+0

當我們也試圖兌現證書,錯誤保持不變,我們嘗試的方法是 –

回答

0

當我們還試圖榮譽證書,誤差保持不變,因爲我們試圖was..the方法是

public static void setupTLS(***servicePort port) throws FileNotFoundException, IOException, GeneralSecurityException 
{ 

    HTTPConduit httpConduit = (HTTPConduit) ClientProxy.getClient(port).getConduit(); 

    String keyStoreLoc = "certificates/***-keystore.ks"; 
    String keyPassword = "*****"; 

    final KeyStoreParameters ksp = new KeyStoreParameters(); 
    ksp.setResource(keyStoreLoc); 
    ksp.setPassword(keyPassword); 

    final KeyManagersParameters kmp = new KeyManagersParameters(); 
    kmp.setKeyStore(ksp); 
    kmp.setKeyPassword(keyPassword); 

    TLSClientParameters tlsCP = new TLSClientParameters(); 
    tlsCP.setKeyManagers(kmp.createKeyManagers()); 
    tlsCP.setDisableCNCheck(true); 
    tlsCP.setUseHttpsURLConnectionDefaultHostnameVerifier(false); 
    tlsCP.setUseHttpsURLConnectionDefaultSslSocketFactory(true); 
    tlsCP.setHostnameVerifier(new HostnameVerifier() 
    { 
     public boolean verify(String hostname, SSLSession session) 
     { 
      return true; 
     } 
    }); 

    // Creating Trust Manager 
    TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() 
    { 
     public java.security.cert.X509Certificate[] getAcceptedIssuers() 
     { 
      return new java.security.cert.X509Certificate[0]; 
     } 

     public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) 
     { 
     } 

     public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) 
     { 
     } 
    } }; 

    tlsCP.setTrustManagers(trustAllCerts); 

    httpConduit.setTlsClientParameters(tlsCP); 

仍然沒有成功的錯誤仍然保持不變

+1

請編輯問題以添加詳細信息。答案保留給解決方案。 – Melebius

相關問題