2014-12-15 4 views
2

SNI를 my socketFactory로 설정해야합니다. 그래서 저는 SSLCertificateSocketFactory 클래스를 사용하고 있습니다. 소켓을 만들 때 서버 인증서에 sslpeerunverifiedexception (SAN이 설정되지 않았으므로)이 표시됩니다. 이 예외를 어떻게 억제하고 서버 인증서와 관계없이 소켓 생성을 허용 할 수 있습니까?소켓 생성 중 sslpeerunverifiedexception 억제

  TrustManager tm = new X509TrustManager() { 
       public void checkClientTrusted(X509Certificate[] chain, 
         String authType) throws CertificateException { 
       } 

       public void checkServerTrusted(X509Certificate[] chain, 
         String authType) throws CertificateException { 
       } 

       public X509Certificate[] getAcceptedIssuers() { 
        return null; 
       } 
      }; 

      SSLCertificateSocketFactory ssf = (SSLCertificateSocketFactory) SSLCertificateSocketFactory 
        .getDefault(0); 

      ssf.setTrustManagers(new TrustManager[] { tm }); 

      m_sslsocket = (SSLSocket) ssf.createSocket(m_socket, m_host, m_port, false); 

답변

0

getInsecure이 나를 위해 일한으로 SSLCertificateSocketFactory 만들기 :

다음은 내 코드입니다. 모든 SSL 보안 검사가 비활성화 된 상태로 소켓 팩터 리의 새 인스턴스를 반환합니다.

SSLCertificateSocketFactory ssf = (SSLCertificateSocketFactory) SSLCertificateSocketFactory 
        .getInsecure(0, null);