Https Connection Android: Mengabaikan Sijil Pelayan untuk Permintaan Rangkaian
Apabila mewujudkan sambungan HTTPS dalam Android, adalah penting untuk mempertimbangkan keselamatan sijil pelayan. Walau bagaimanapun, dalam situasi tertentu, mungkin perlu untuk mewujudkan sambungan tanpa mengesahkan sijil pelayan. Artikel ini membincangkan cara memintas pengesahan sijil pelayan untuk sambungan HTTP dalam Android.
Penyelesaian: Mempercayai Semua Pelayan
Untuk mengabaikan sijil pelayan dan mempercayai semua sambungan, anda boleh melaksanakan HostnameVerifier tersuai dan pasang pengurus amanah yang mengesahkan semua sijil. Berikut ialah kodnya:
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()); }
Penubuhan Sambungan
Setelah kepercayaan semua kaedah hos dilaksanakan, anda boleh mewujudkan sambungan HTTP sambil mengabaikan pengesahan sijil menggunakan kod berikut :
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(); }
Ini akan membolehkan anda membuat sambungan HTTPS tanpa bergantung pada pengesahan sijil pelayan, yang mungkin diperlukan dalam senario tertentu. Adalah penting untuk ambil perhatian bahawa pendekatan ini hanya boleh digunakan dalam pembangunan atau persekitaran terkawal di mana keselamatan bukan kebimbangan utama.
Atas ialah kandungan terperinci Bagaimana untuk memintas Pengesahan Sijil Pelayan HTTPS dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!