2014-02-27 9 views
1

Android 앱 (테스트 앱)에서 아래의 disableSslValidation 메소드를 실행하여 SSL 인증서 유효성 검사를 사용 중지합니다. 이제 프로세스를 다시 시작하지 않고 SSL 인증서 유효성 검사를 사용하려고합니다. 어떻게해야합니까?Java (Android)에서 SSL 유효성 검사 다시 사용

편집 : 나는 SSL 검증을 사용 중지하고 위의 위험을 고의로 수락하는 것과 관련된 위험을인지하고 있습니다.

private void disableSslValidation() throws KeyManagementException, NoSuchAlgorithmException { 
    // Create a trust manager that does not validate certificate chains 
    TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { 
     public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
      return null; 
     } 

     public void checkClientTrusted(X509Certificate[] certs, String authType) {} 

     public void checkServerTrusted(X509Certificate[] certs, String authType) {} 
    } }; 

    // Install the all-trusting trust manager 
    SSLContext sc = SSLContext.getInstance("SSL"); 
    sc.init(null, trustAllCerts, new java.security.SecureRandom()); 
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 

    // Create all-trusting host name verifier 
    HostnameVerifier allHostsValid = new HostnameVerifier() { 
     public boolean verify(String hostname, SSLSession session) { 
      return true; 
     } 
    }; 

    // Install the all-trusting host verifier 
    HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); 
} 
+1

부분 해결 방법 : https://stackoverflow.com/questions/32112084/enable-ssl-certificate-validation-jvm/32112192 –

답변

0

테스트 코드이므로 그냥 버리십시오. 당신은 안전하지 않은 코드가 생산에 누설되는 것을 원하지 않습니다. 응용 프로그램에 표시하고 싶지 않습니다.

+0

정확한 경쟁 조건으로 실행되는 경우 스크립트에서 프로덕션 환경을 저장할 수 있으므로 동의하지 않음 ** **, 프로덕션 서버에 SSL 문제가있는 경우 (프로그래머가 나쁜 sysadmin과 공동 작업을해야 할 때). 게다가 당신은 그 질문에 대답하지 않습니다. –