Comment faire pour importer certificat SSL auto-signé de Volley sur Android 4.1+
Je développe une application android qui utilise Volley.
Toute la communication se fait via HTTPS connexion.
Parce que je l'ai testé sur l'environnement local, j'utilise des certificats auto-signés pour Tomcat.
Avant, je n'avais qu'android 2.3 et 3.0 appareils. Maintenant, j'ai aussi 4.1 et 4.4.
Mon application utilise cette approche: http://developer.android.com/training/articles/security-ssl.html (partie Inconnus de l'autorité de certificat)
Sur les appareils avec Android jusqu'à 4.1, il fonctionne parfaitement. SSLSocketFactory avec des certificats est passé de Volley:
Volley.newRequestQueue(getApplicationContext(), new HurlStack(null, socketFactory));
Mais ce qui se passe sur Android 4.1+?
Pourquoi il ne fonctionne pas?
J'ai essayé aussi avec NullX509TrustManager comme ceci:
private static class NullX509TrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
}
Mais il ne fonctionne toujours pas...
Vous devez vous connecter pour publier un commentaire.
J'ai résolu avec la solution mentionnée ici:
http://developer.android.com/training/articles/security-ssl.html
Problèmes communs avec le nom d'hôte de Vérification
par l'ajout de nom d'hôte verifier qui retourne true pour mon nom d'hôte dans le projet de Volley-ball et de l'édition HurlStack méthode openConnection:
Si vous avez déjà un .crt fichier et cherchent à s'attacher à Volley alors voici 2 étapes simples à suivre.
Étape 1: Écrire cette méthode à votre code.
Étape 2: ajoutez Simplement cette ligne ci-dessous avant de faire une demande à l'aide de Volley.
Android Studio vous demandera de placer cette ligne dans le try/catch pour toutes les Exceptions levées par notre méthode. Il suffit donc de laisser faire.
Bon Codage!
La méthode la plus simple que j'ai trouvé est l'ajout de cette classe et l'exécution de
onCreate
méthodeIl fera volley de faire Confiance à tous les certificats SSL
Confiance tous les certificats SSL:-
Vous pouvez contourner SSL si vous voulez tester sur le serveur de test.
Mais ne pas utiliser ce code pour la production.
}
Veuillez appeler cette fonction dans la fonction onCreate() de l'Activité ou dans votre Classe d'Application.
Ceci peut être utilisé pour le Volley-en Android.
Plus Réf.
https://newfivefour.com/android-trust-all-ssl-certificates.html