Android DefaultHttpClient accepte tous les certificates pour l’aide de session SSL

J’essaie de me connecter à un serveur HTTPS local en utilisant apache DefaultHttpClient sur un périphérique Android.

DefaultHttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://192.168.1.121:4113/services"); ... header and content filling in ... HttpResponse response = httpclient.execute(httppost); 

Je reçois une erreur de “javax.net.ssl ​​SSLException: certificate de serveur non approuvé” lorsque .execute s’exécute. Je veux simplement permettre à n’importe quel certificate de fonctionner, qu’il soit ou non dans la chaîne de clés Android.

J’ai passé environ 40 heures à chercher et à essayer de trouver une solution à ce problème. J’ai vu beaucoup d’exemples de la façon de faire cela, mais aucun jusqu’à présent n’a fonctionné sous Android; ils semblent fonctionner uniquement pour JAVA. Est-ce que quelqu’un sait comment configurer ou remplacer la validation de certificate utilisée par Apache HttpClient dans Android pour qu’il approuve simplement tous les certificates pour une connexion DefaultHttpClient?

Je vous remercie pour votre aimable réponse

Si quelqu’un essaie encore de comprendre cela, j’ai fini par trouver la solution ici:

HTTPS GET (SSL) avec Android et certificate de serveur auto-signé

Faites défiler jusqu’à la solution par SimonJ. C’est une solution simple et directe à ce problème.

Regardez ce tutoriel http://blog.antoine.li/index.php/2010/10/android-trusting-ssl-certificatees/

Le tutoriel est basé sur HttpClient d’Apache et explique comment utiliser SSLSocketFactory pour faire confiance aux certificates définis dans votre propre fichier de clés (expliquant également comment le créer avec le fournisseur BouncyCastle).

Je l’ai testé et ça marche super bien. À mon avis, c’est le moyen sécurisé.