¿Deshabilitar la validación del certificado SSL de la conexión HTTPS?

Cuando deseo abrir una conexión de HTTPS consigo la excepción del SSL. ¿Cómo establecer HttpURLConnection de una manera de no ser sensible a esta excepción?

Mi código es:

private String getData() { String response = null; String connection = "https://www.kamalan.com/"; try { URL url = new URL(connection); Log.i(TAG, "Try to open: " + connection); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); int responseCode = conn.getResponseCode(); Log.i(TAG, "Response code is: " + responseCode); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); if (in != null) { StringBuilder strBuilder = new StringBuilder(); int ch = 0; while ((ch = in.read()) != -1) strBuilder.append((char) ch); // get returned message and show it response = strBuilder.toString(); Log.i("JSON returned by server:", response); } in.close(); } else { Log.e(TAG, "Couldn't open connection in getResepiItems()"); } } catch (SSLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return response; } 

One Solution collect form web for “¿Deshabilitar la validación del certificado SSL de la conexión HTTPS?”

Siga el siguiente método, funciona para mí.

  URL url = new URL("Your URL"); HttpsURLConnection urlConnection =(HttpsURLConnection) url.openConnection(); urlConnection.setSSLSocketFactory(SSLCertificateSocketFactory.getInsecure(0, null)); urlConnection.setHostnameVerifier(getHostnameVerifier()); InputStream is = urlConnection.getInputStream(); OutputStream os = new FileOutputStream(downloadedFile); byte[] data = new byte[1024]; int count; while ((count = is.read(data)) != -1) { os.write(data, 0, count); } os.flush(); os.close(); is.close(); 

El siguiente método para establecer el nombre de host

 private HostnameVerifier getHostnameVerifier() { HostnameVerifier hostnameVerifier = new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { HostnameVerifier hv = HttpsURLConnection.getDefaultHostnameVerifier(); return hv.verify("com.example.com", session); } }; return hostnameVerifier; } 
  • Aceptar certificados SSL autofirmados-> donde configurar TrustManager predeterminado
  • El certificado StartSSL no es de confianza en Firefox y en Android
  • Keystore SHA1 diferente de cert.rsa SHA1 de APK
  • OkHttp javax.net.ssl.SSLPeerUnverifiedException: Nombre de host domain.com no verificado
  • Google Cloud Messaging muestra "notRegistered" al usar la aplicación distribuida de iOS
  • ¿Cómo se puede cargar https url sin el uso de ssl en android webview
  • Agregar varios certificados SSL a Android KeyStore no funciona. (Desde el archivo de recursos)
  • Uso de UnboundID SDK con un archivo de certificado SSL para conectarse al servidor LDAP en la aplicación de Android
  • Conexión de Https con conexión cerrada por peer en Android 6.0
  • DownloadManager: entiende la política de reintentos y los códigos de error
  • Android envía la solicitud de correos https al servidor sin métodos desaconsejados
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.