휴...몇일동안 구글링하면서... 삽질하다가....너무 안되서 질문 올립니다.... https 로 사이트에 로그인을 하는건데 SSL 에러가 나내요 ㅠ


이게 무슨 에런가.... 한참동안 찾아도.....나오는것도 없고...혹시 저와 같은 고민을 해본적 있으신분 알려주세요 ㅠㅠ 소스는 아래와 같습니다.


public void main() {

// TODO Auto-generated method stub

HttpClient httpclient = wrapClient(new DefaultHttpClient());

// HttpClient httpclient = new DefaultHttpClient();


try {

List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();

formparams.add(new BasicNameValuePair("SMD", "ANDRO"));

formparams.add(new BasicNameValuePair("ID", "test"));

formparams.add(new BasicNameValuePair("PW", "1234"));

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");

HttpPost post = new HttpPost(url);

post.addHeader("Content-Type", "application/x-www-form-urlencoded");

post.addHeader("X-Requested-With", "XMLHttpRequest");

post.setEntity(entity);

HttpResponse response = httpclient.execute(post);

String ret = "";

            if (response != null) {

                ret = EntityUtils.toString(response.getEntity());

            }else{

            ret = "Some Wrong";

            }

            System.out.println(ret);

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

Log.i("ssun","ClientException====>"+e.getMessage());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

Log.i("ssun","IOException====>"+e.getMessage());

}

}

@SuppressWarnings("deprecation")

public static HttpClient wrapClient(HttpClient base) {

   try {

       SSLContext ctx = SSLContext.getInstance("TLS");

       X509TrustManager tm = new X509TrustManager() {

           public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException { }

 

           public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException { }

 

           public X509Certificate[] getAcceptedIssuers() {

               return null;

           }

       };

       ctx.init(null, new TrustManager[]{tm}, null);

//        SSLSocketFactory ssf = new SSLSocketFactory(ctx);

//        ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

       ClientConnectionManager ccm = base.getConnectionManager();

       SchemeRegistry schemeRegistry = ccm.getSchemeRegistry();

    // http scheme

    schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));

    // https scheme

    schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));


       return new DefaultHttpClient(ccm, base.getParams());

   } catch (Exception ex) {

    Log.i("ssun","Exception===>"+ex.getMessage());

       return null;

   }

}




에러 내용입니다.



 javax.net.ssl.SSLHandshakeException: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate signature.

     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:477)

     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.<init>(OpenSSLSocketImpl.java:750)

     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:692)

     at org.apache.http.impl.io.SocketInputBuffer.<init>(SocketInputBuffer.java:93)

     at org.apache.http.impl.SocketHttpClientConnection.createSessionInputBuffer(SocketHttpClientConnection.java:83)

     at org.apache.http.impl.conn.DefaultClientConnection.createSessionInputBuffer(DefaultClientConnection.java:170)

     at org.apache.http.impl.SocketHttpClientConnection.bind(SocketHttpClientConnection.java:106)

     at org.apache.http.impl.conn.DefaultClientConnection.openCompleted(DefaultClientConnection.java:129)

     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:184)

     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)

     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)

     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)

     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)

     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)

     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)

     at com.sun.inovin.htmlRequest.main(htmlRequest.java:52)

     at com.sun.inovin.InoVin.onCreate(InoVin.java:123)

     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)

     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)

     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)

     at android.app.ActivityThread.access$1500(ActivityThread.java:117)

     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)

     at android.os.Handler.dispatchMessage(Handler.java:99)

     at android.os.Looper.loop(Looper.java:130)

     at android.app.ActivityThread.main(ActivityThread.java:3687)

     at java.lang.reflect.Method.invokeNative(Native Method)

     at java.lang.reflect.Method.invoke(Method.java:507)

     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)

     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)

     at dalvik.system.NativeStart.main(Native Method)

 Caused by: java.security.cert.CertificateException: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate signature.

     at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:161)

     at com.sun.inovin.EasyX509TrustManager.checkServerTrusted(EasyX509TrustManager.java:57)

     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:664)

     at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)

     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474)

     ... 29 more

 Caused by: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate signature.

     at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1504)

     at org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi.engineValidate(PKIXCertPathValidatorSpi.java:399)

     at java.security.cert.CertPathValidator.validate(CertPathValidator.java:197)

     at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:156)

     ... 33 more

 Caused by: java.security.SignatureException: Signature was not verified

     at org.apache.harmony.security.provider.cert.X509CertImpl.fastVerify(X509CertImpl.java:562)

     at org.apache.harmony.security.provider.cert.X509CertImpl.verify(X509CertImpl.java:487)

     at org.bouncycastle.jce.provider.CertPathValidatorUtilities.verifyX509Certificate(CertPathValidatorUtilities.java:1551)

     at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1496)

     ... 36 more