Saltar al contenido

Cómo importar un certificado SSL autofirmado a Volley en Android 4.1+

Solución:

Lo resolví con la solución mencionada aquí:

http://developer.android.com/training/articles/security-ssl.html

Problemas comunes con la verificación del nombre de host

agregando un verificador de nombre de host personalizado que devuelve verdadero para mi nombre de host en el proyecto Volley y editando el método HurlStack openConnection:

if ("https".equals(url.getProtocol()) && mSslSocketFactory != null) {            
    ((HttpsURLConnection)connection).setSSLSocketFactory(mSslSocketFactory);
    ((HttpsURLConnection)connection).setHostnameVerifier(new CustomHostnameVerifier());         
}

Confíe en todos los certificados SSL: – Puede omitir SSL si desea realizar la prueba en el servidor de prueba. Pero no use este código para la producción.

public static class NukeSSLCerts {
protected static final String TAG = "NukeSSLCerts";

public static void nuke() {
    try {
        TrustManager[] trustAllCerts = new TrustManager[] { 
            new X509TrustManager() {
                public X509Certificate[] getAcceptedIssuers() {
                    X509Certificate[] myTrustedAnchors = new X509Certificate[0];  
                    return myTrustedAnchors;
                }

                @Override
                public void checkClientTrusted(X509Certificate[] certs, String authType) {}

                @Override
                public void checkServerTrusted(X509Certificate[] certs, String authType) {}
            }
        };

        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, new SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
        HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
            @Override
            public boolean verify(String arg0, SSLSession arg1) {
                return true;
            }
        });
    } catch (Exception e) { 
    }
}

}

Llame a esta función en la función onCreate () en Actividad o en su Clase de aplicación.

NukeSSLCerts.nuke();

Esto se puede utilizar para Volley en Android. Más Ref. https://newfivefour.com/android-trust-all-ssl-certificates.html

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *