Connexion HTTPS Android : ignorer le certificat de serveur pour les requêtes réseau
Lors de l'établissement de connexions HTTPS sous Android, il est crucial de prendre en compte la sécurité du certificat de serveur. Cependant, dans certaines situations, il peut être nécessaire d'établir une connexion sans vérifier le certificat du serveur. Cet article explique comment contourner la vérification des certificats de serveur pour les connexions HTTP dans Android.
Solution : faire confiance à tous les serveurs
Pour ignorer les certificats de serveur et faire confiance à toutes les connexions, vous pouvez implémenter un HostnameVerifier personnalisé et installez un gestionnaire de confiance qui valide tous les certificats. Voici le code :
HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }; private static void trustAllHosts() { TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return new java.security.cert.X509Certificate[] {}; } public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {} public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {} } }; SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); }
Établissement de la connexion
Une fois la méthode trust all hosts implémentée, vous pouvez établir une connexion HTTP tout en ignorant la vérification du certificat à l'aide du code suivant :
HttpURLConnection http = null; if (url.getProtocol().toLowerCase().equals("https")) { trustAllHosts(); HttpsURLConnection https = (HttpsURLConnection) url.openConnection(); https.setHostnameVerifier(DO_NOT_VERIFY); http = https; } else { http = (HttpURLConnection) url.openConnection(); }
Cela vous permettra d'établir des connexions HTTPS sans compter sur la validation du certificat du serveur, ce qui peut être nécessaire dans des scénarios spécifiques. Il est crucial de noter que cette approche ne doit être utilisée que dans des environnements de développement ou contrôlés où la sécurité n'est pas une préoccupation majeure.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!