Rumah >Java >javaTutorial >Bagaimana untuk Memintas Sijil Pelayan Tidak Dipercayai Apabila Mewujudkan Sambungan HTTPS pada Android?
Penubuhan Sambungan HTTPS pada Android
Apabila cuba mewujudkan sambungan HTTPS pada Android, pembangun mungkin menghadapi pengecualian yang berkaitan dengan sijil pelayan yang tidak dipercayai . Untuk menangani perkara ini, seseorang boleh mempertimbangkan untuk menerima sijil pelayan.
Percayai Semua Hos
Satu pendekatan untuk memintas pengesahan sijil ialah mempercayai semua hos, melumpuhkan pemeriksaan dengan berkesan. Ini boleh dicapai dengan melaksanakan HostnameVerifier tersuai dan TrustManager.
// Hostname verifier that always returns true HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }; // Trust manager that accepts all certificates TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[]{}; } @Override public void checkClientTrusted(X509Certificate[] chain, String authType) {} @Override public void checkServerTrusted(X509Certificate[] chain, String authType) {} } };
Seterusnya, mulakan SSLContext dan gunakan pengurus amanah dan pengesah nama hos.
SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, trustAllCerts, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
Contoh Penggunaan
Apabila membuat sambungan HTTP, semak protokol dan gunakan konfigurasi yang dinyatakan di atas jika ia HTTPS.
HttpURLConnection http = null; String url = "https://example.com"; if (url.toLowerCase().equals("https")) { trustAllHosts(); HttpsURLConnection https = (HttpsURLConnection) url.openConnection(); https.setHostnameVerifier(DO_NOT_VERIFY); http = https; } else { http = (HttpURLConnection) url.openConnection(); }
Atas ialah kandungan terperinci Bagaimana untuk Memintas Sijil Pelayan Tidak Dipercayai Apabila Mewujudkan Sambungan HTTPS pada Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!