Heim >Java >javaLernprogramm >Wie kann ich den Fehler „SSL-Ausnahme: Nicht vertrauenswürdiges Serverzertifikat' auf Android beheben?
Informationen zu HTTPS-Verbindungsproblemen unter Android
Beim Versuch, eine HTTPS-Verbindung unter Android herzustellen, kann es zu einer „SSL-Ausnahme: Nicht vertrauenswürdig“ kommen Fehler „Serverzertifikat“. Dieser Fehler tritt normalerweise auf, wenn selbstsignierte Zertifikate oder nicht vertrauenswürdige Zertifikate verwendet werden.
Umgehen der Zertifikatsüberprüfung
Eine Methode zur Behebung dieses Problems besteht darin, die Zertifikatsüberprüfung zu deaktivieren. Dieser Ansatz gefährdet jedoch die Sicherheit, da Verbindungen zu nicht vertrauenswürdigen Servern zugelassen werden. Der folgende Codeausschnitt aus dem Java Developers Almanac zeigt, wie man allen Hosts vertraut und die Zertifikatsprüfung umgeht:
// 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(); }
Bedingte Behandlung basierend auf dem Protokoll
Alternativ können Sie dies tun Behandeln Sie die Verbindung bedingt basierend auf dem Protokoll, wie im folgenden Code gezeigt Snippet:
if (url.getProtocol().toLowerCase().equals("https")) { trustAllHosts(); HttpsURLConnection https = (HttpsURLConnection) url.openConnection(); https.setHostnameVerifier(DO_NOT_VERIFY); http = https; } else { http = (HttpURLConnection) url.openConnection(); }
Wenn Sie diesen Ansätzen folgen, können Sie HTTPS-Verbindungen herstellen und die Zertifikatsüberprüfung umgehen. Es ist jedoch wichtig zu beachten, dass dies die Sicherheit gefährdet und mit Vorsicht verwendet werden sollte.
Das obige ist der detaillierte Inhalt vonWie kann ich den Fehler „SSL-Ausnahme: Nicht vertrauenswürdiges Serverzertifikat' auf Android beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!