0

일부 URL 연결의 SSL 인증을 건너 뛸 필요가있는 Java 응용 프로그램을 만들고 있는데 모든 URL 연결이 아닙니다. 현재 다음 코드를 사용하고 있습니다.SSL 인증 URL 연결을 Java에서 우회하는 방법은 무엇입니까?

TrustManager[] trustAllCerts = new TrustManager[] { 
    new X509TrustManager() { 
     public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
      return null; 
     } 
     public void checkClientTrusted (
      java.security.cert.X509Certificate[] certs, String authType) { 
     } 
     public void checkServerTrusted (
      java.security.cert.X509Certificate[] certs, String authType) { 
     } 
    } 
}; 
try { 
    SSLContext sc = SSLContext.getInstance("SSL"); 
    sc.init(null, trustAllCerts, new java.security.SecureRandom()); 
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
} catch (Exception e) { 
} 

이 코드에서 모든 URL 연결은 응용 프로그램이 다시 시작될 때까지 SSL 인증을 건너 뜁니다.

모든 URL 연결이 아닌 일부 URL 연결에 대해서만 SSL 인증 확인을 건너 뛸 수있는 방법이 있습니까?

+0

HTTPS를 전혀 사용하지 않는 이유는 무엇입니까? – EJP

+0

서버 측의 인증서에 문제가있어서 일시적으로 SSL 인증을 생략하고 싶습니다. – Rocky

답변

1

HttpsURLConnection.setDefaultSSLSocketFactory을 클래스에서 전역으로 사용하는 대신 URLConnection 인스턴스를 HttpsURLConnection 인스턴스로 캐스팅하고 setSSLSocketFactory(...)을 사용하십시오.

모든 확인을 거치지 않고 this answer에 설명 된대로 가능한 경우 이러한 연결에 대해 특정 트러스트 저장소를 사용하는 것이 좋습니다.