Android에서 HTTPS 연결 문제 이해
Android에서 HTTPS 연결을 설정하려고 하면 "SSL 예외: 신뢰할 수 없음"이 발생할 수 있습니다. 서버 인증서' 오류가 발생했습니다. 이 오류는 일반적으로 자체 서명된 인증서나 신뢰할 수 없는 인증서를 사용할 때 발생합니다.
인증서 확인 우회
이 문제를 해결하는 한 가지 방법은 인증서 확인을 비활성화하는 것입니다. 그러나 이 접근 방식은 신뢰할 수 없는 서버에 대한 연결을 허용하여 보안을 손상시킵니다. Java Developers Almanac의 다음 코드 조각은 모든 호스트를 신뢰하고 인증서 확인을 우회하는 방법을 보여줍니다.
// 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(); }
프로토콜 기반 조건부 처리
또는 다음을 수행할 수 있습니다. 다음 코드와 같이 프로토콜을 기반으로 조건부로 연결을 처리합니다. 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(); }
이러한 접근 방식을 따르면 HTTPS 연결을 설정하고 인증서 확인을 우회할 수 있지만 이로 인해 보안이 손상되므로 주의해서 사용해야 한다는 점에 유의하는 것이 중요합니다.
위 내용은 Android에서 'SSL 예외: 신뢰할 수 없는 서버 인증서' 오류를 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!