Maison >Java >javaDidacticiel >Comment puis-je résoudre les erreurs « Exception SSL : certificat de serveur non approuvé » sur Android ?
Comprendre les problèmes de connexion HTTPS sur Android
Lorsque vous essayez d'établir une connexion HTTPS sur Android, vous pouvez rencontrer une « exception SSL : non fiable erreur de certificat de serveur". Cette erreur se produit généralement lors de l'utilisation de certificats auto-signés ou de certificats non fiables.
Contourner la vérification du certificat
Une méthode pour résoudre ce problème consiste à désactiver la vérification du certificat. Cette approche compromet toutefois la sécurité en autorisant les connexions à des serveurs non fiables. L'extrait de code suivant de The Java Developers Almanac montre comment faire confiance à tous les hôtes et contourner la vérification des certificats :
// Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return new java.security.cert.X509Certificate[] {}; } @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {} @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {} } }; // Install the all-trusting trust manager try { SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } catch (Exception e) { e.printStackTrace(); }
Gestion conditionnelle basée sur le protocole
Vous pouvez également gérer la connexion de manière conditionnelle en fonction du protocole, comme indiqué dans le code suivant extrait :
if (url.getProtocol().toLowerCase().equals("https")) { trustAllHosts(); HttpsURLConnection https = (HttpsURLConnection) url.openConnection(); https.setHostnameVerifier(DO_NOT_VERIFY); http = https; } else { http = (HttpURLConnection) url.openConnection(); }
En suivant ces approches, vous pouvez établir des connexions HTTPS et contourner la vérification du certificat, mais il est important de noter que cela compromet la sécurité et doit être utilisé avec prudence.
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!