← 전체 글
Android

[Android] https 요청 시 ssl 인증서 오류

http 요청은 잘 되는데 https 요청 시 아래 오류 발생 javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException:Trust anchor for certification path not found 원인 : Connection 하는 웹사이트의 Certificate 인증서가 안드로이드 단말에 존재하지 않을 경우 발생 해결방법 1.…

http 요청은 잘 되는데 https 요청 시 아래 오류 발생

javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException:Trust anchor for certification path not found

원인 : Connection 하는 웹사이트의 Certificate 인증서가 안드로이드 단말에 존재하지 않을 경우 발생

해결방법

  1. 요청하고자 하는 웹사이트의 인증서 확인 후 다운로드
  • 브라우저 주소창에 자물쇠 클릭

  • 인증서 정보 클릭

  • 세부정보 탭 선택 후 내보내기 버튼 클릭

  1. 프로젝트에 인증서 복사
  • res > raw 위치에 인증서 붙여넣기

  1. Connection 시 인증서 정보 setting
CertificateFactory cf = CertificateFactory.getInstance("X.509");

InputStream caInput = getResources().openRawResource(R.raw.maandoo);
Certificate ca = cf.generateCertificate(caInput);

// Create a KeyStore containing our trusted CAs
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null,null);
keyStore.setCertificateEntry("ca", ca);

// Create a TrustManager that trusts the CAs in our KeyStore
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);

// Create an SSLContext that uses our TrustManager
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, tmf.getTrustManagers(), new java.security.SecureRandom());
caInput.close();

URL requestUrl = new URL(url + param);
HttpsURLConnection urlConnection = (HttpsURLConnection)requestUrl.openConnection();
urlConnection.setSSLSocketFactory(sslContext.getSocketFactory());
InputStream is = urlConnection.getInputStream();
© 2026 Maandoo