Heim >Java >javaLernprogramm >Wie umgehe ich die Überprüfung des HTTPS-Serverzertifikats in Android?
Https-Verbindung Android: Serverzertifikat für Netzwerkanfragen ignorieren
Beim Herstellen von HTTPS-Verbindungen in Android ist es wichtig, die Sicherheit des Serverzertifikats zu berücksichtigen. In bestimmten Situationen kann es jedoch erforderlich sein, eine Verbindung herzustellen, ohne das Serverzertifikat zu überprüfen. In diesem Artikel wird beschrieben, wie Sie die Serverzertifikatsüberprüfung für HTTP-Verbindungen in Android umgehen.
Lösung: Allen Servern vertrauen
Um Serverzertifikate zu ignorieren und allen Verbindungen zu vertrauen, können Sie Folgendes implementieren einen benutzerdefinierten HostnameVerifier und installieren Sie einen Trust-Manager, der alle Zertifikate validiert. Hier ist der 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()); }
Verbindungsaufbau
Sobald die Methode „Alle Hosts vertrauen“ implementiert ist, können Sie mithilfe des folgenden Codes eine HTTP-Verbindung herstellen und dabei die Zertifikatsüberprüfung ignorieren :
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(); }
Dadurch können Sie HTTPS-Verbindungen herstellen, ohne sich auf die Validierung von Serverzertifikaten verlassen zu müssen, was in bestimmten Fällen erforderlich sein kann Szenarien. Es ist wichtig zu beachten, dass dieser Ansatz nur in Entwicklungs- oder kontrollierten Umgebungen verwendet werden sollte, in denen Sicherheit kein vorrangiges Anliegen ist.
Das obige ist der detaillierte Inhalt vonWie umgehe ich die Überprüfung des HTTPS-Serverzertifikats in Android?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!