0 Replies Latest reply on Nov 12, 2014 12:44 AM by chakribobby1

    Unable to bypass  trusted certificate

    chakribobby1

      Hi

       

       

      Below code is working fine if i run it from my development environment.

       

      import javax.net.ssl.HostnameVerifier;

      import javax.net.ssl.HttpsURLConnection;

      import javax.net.ssl.SSLSession;

      import javax.net.ssl.X509TrustManager;

      import javax.xml.ws.BindingProvider;

       

      import com.vmware.vim25.ManagedObjectReference;

      import com.vmware.vim25.ServiceContent;

      import com.vmware.vim25.UserSession;

      import com.vmware.vim25.VimPortType;

      import com.vmware.vim25.VimService;

       

      public class test {

       

          public void testFun() {

             // TODO Auto-generated method stub

             String host = "hostIP";

             String user = "root";

             String password = "root";

             final String url = "https://" + host + "/sdk/vimService";

             try {

                HostnameVerifier hv = new HostnameVerifier() {

                   public boolean verify(String hostname, SSLSession session) {

       

                      return true;

                   }

                };

                final javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];

                final javax.net.ssl.TrustManager tm = new X509TrustManager() {

                   public java.security.cert.X509Certificate[] getAcceptedIssuers() {return null; }

                   public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {return true; }

                   public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {return true; }

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

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

                   };

                  

                trustAllCerts[0] = tm;

                final javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");

                final javax.net.ssl.SSLSessionContext sslsc = sc.getServerSessionContext();

                sslsc.setSessionTimeout(0);

                sc.init(null, trustAllCerts, null);

                javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

                HttpsURLConnection.setDefaultHostnameVerifier(hv);

               

                final VimService vimService = new VimService();

                VimPortType vimPort = vimService.getVimPort();

                Map<String, Object> ctxt = ((BindingProvider) vimPort).getRequestContext();

                ctxt.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);

                ctxt.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);

                System.setProperty("org.jboss.security.ignoreHttpsHost", "true");

               

                ManagedObjectReference ref = new ManagedObjectReference();

                ref.setType("ServiceInstance");

                ref.setValue("ServiceInstance");

                ServiceContent serviceContent = vimPort.retrieveServiceContent(ref);

                UserSession userSession = vimPort.login(serviceContent.getSessionManager(), user, password, null);

                System.out.println(serviceContent.getRootFolder().getType());

             }

             catch (Exception e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

             }

          }

      }

       

       

      but getting error "No trusted certificate found" when i deploy in application server(JBOSS 4.2.3) and i am not getting this error in JBOSS 6.1, please let me know what i need to do more if i want to deploy in JBOSS 4.2.3

       

      please find the below error logs for more information

       

      Error message:

       

       

      Caused by: java.io.IOException: Could not transmit message

               at org.jboss.ws.core.client.HTTPRemotingConnection.invoke(HTTPRemotingConnection.java:265)

               at org.jboss.ws.core.client.SOAPProtocolConnectionHTTP.invoke(SOAPProtocolConnectionHTTP.java:71)

               at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:340)

               at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:290)

               ... 50 more

      Caused by: org.jboss.remoting.CannotConnectException: Can not connect http client invoker. sun.security.validator.ValidatorException: No trusted certificate found.

               at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:348)

               at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:137)

               at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)

               at org.jboss.remoting.Client.invoke(Client.java:1634)

               at org.jboss.remoting.Client.invoke(Client.java:548)

               at org.jboss.ws.core.client.HTTPRemotingConnection.invoke(HTTPRemotingConnection.java:243)

               ... 53 more

      Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found

               at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)

               at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)

               at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

               at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

               at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)

               at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)

               at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)

               at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)

               at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)

               at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)

               at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

               at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)

               at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)

               at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)

               at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)

               at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)

               at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:277)

               ... 58 more

      Caused by: sun.security.validator.ValidatorException: No trusted certificate found

               at sun.security.validator.SimpleValidator.buildTrustedChain(Unknown Source)

               at sun.security.validator.SimpleValidator.engineValidate(Unknown Source)

               at sun.security.validator.Validator.validate(Unknown Source)

               at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)

               at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

               at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)

               ... 71 more

       

       

      Could you please help me to resolve this issure..

       

       

      thank in advance