>Java >java지도 시간 >Android에서 'SSL 예외: 신뢰할 수 없는 서버 인증서' 오류를 어떻게 해결할 수 있나요?

Android에서 'SSL 예외: 신뢰할 수 없는 서버 인증서' 오류를 어떻게 해결할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-12-27 15:06:11914검색

How Can I Resolve

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.