{"id":6226,"date":"2014-04-13T23:31:31","date_gmt":"2014-04-13T23:31:31","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2014\/04\/13\/javax-net-ssl-sslexception-ssl-handshake-aborted-connection-reset-by-peer-while-calling-webservice-android-collection-of-common-programming-errors\/"},"modified":"2014-04-13T23:31:31","modified_gmt":"2014-04-13T23:31:31","slug":"javax-net-ssl-sslexception-ssl-handshake-aborted-connection-reset-by-peer-while-calling-webservice-android-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2014\/04\/13\/javax-net-ssl-sslexception-ssl-handshake-aborted-connection-reset-by-peer-while-calling-webservice-android-collection-of-common-programming-errors\/","title":{"rendered":"javax.net.ssl.SSLException: SSL handshake aborted Connection reset by peer while calling webservice Android-Collection of common programming errors"},"content":{"rendered":"<p>I am calling <strong>https webservice<\/strong> and its works fine before, but now when i am trying to call it its give me following errors.<\/p>\n<p><strong>Log Errors :<\/strong><\/p>\n<pre><code>12-23 06:28:11.969: W\/System.err(3014): javax.net.ssl.SSLException: SSL handshake aborted: ssl=0x1cc160: I\/O error during system call, Connection reset by peer\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474)\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.(OpenSSLSocketImpl.java:750)\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:692)\n12-23 06:28:11.979: W\/System.err(3014):     at crittercism.android.aa.getInputStream(Unknown Source)\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.http.impl.io.SocketInputBuffer.(SocketInputBuffer.java:93)\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.http.impl.SocketHttpClientConnection.createSessionInputBuffer(SocketHttpClientConnection.java:83)\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.http.impl.conn.DefaultClientConnection.createSessionInputBuffer(DefaultClientConnection.java:170)\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.http.impl.SocketHttpClientConnection.bind(SocketHttpClientConnection.java:106)\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.http.impl.conn.DefaultClientConnection.openCompleted(DefaultClientConnection.java:129)\n12-23 06:28:11.979: W\/System.err(3014):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:171)\n12-23 06:28:11.989: W\/System.err(3014):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)\n12-23 06:28:11.989: W\/System.err(3014):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)\n12-23 06:28:11.989: W\/System.err(3014):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)\n12-23 06:28:11.989: W\/System.err(3014):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)\n12-23 06:28:11.989: W\/System.err(3014):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)\n12-23 06:28:11.989: W\/System.err(3014):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)\n<\/code><\/pre>\n<p>I am using following code for calling https webservice.<\/p>\n<pre><code>public static void trustAllHosts() {\n\n        X509TrustManager easyTrustManager = new X509TrustManager() {\n\n            public void checkClientTrusted(X509Certificate[] chain,\n                    String authType) throws CertificateException {\n                \/\/ Oh, I am easy!\n            }\n\n            public void checkServerTrusted(X509Certificate[] chain,\n                    String authType) throws CertificateException {\n                \/\/ Oh, I am easy!\n            }\n\n            public X509Certificate[] getAcceptedIssuers() {\n                return null;\n            }\n\n        };\n\n        \/\/ Create a trust manager that does not validate certificate chains\n        TrustManager[] trustAllCerts = new TrustManager[] { easyTrustManager };\n\n        \/\/ Install the all-trusting trust manager\n        try {\n            SSLContext sc = SSLContext.getInstance(\"TLS\");\n\n            sc.init(null, trustAllCerts, new java.security.SecureRandom());\n\n            HttpsURLConnection\n                    .setDefaultSSLSocketFactory(sc.getSocketFactory());\n\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n\n    public static HttpClient getNewHttpClient() {\n        try {\n            KeyStore trustStore = KeyStore.getInstance(KeyStore\n                    .getDefaultType());\n            trustStore.load(null, null);\n\n            SSLSocketFactory sf = new MySSLSocketFactory(trustStore);\n            sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);\n\n            HttpParams params = new BasicHttpParams();\n            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);\n            HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);\n\n            SchemeRegistry registry = new SchemeRegistry();\n            registry.register(new Scheme(\"http\", PlainSocketFactory\n                    .getSocketFactory(), 80));\n            registry.register(new Scheme(\"https\", sf, 443));\n\n            ClientConnectionManager ccm = new ThreadSafeClientConnManager(\n                    params, registry);\n\n            return new DefaultHttpClient(ccm, params);\n        } catch (Exception e) {\n            return new DefaultHttpClient();\n        }\n    }\n<\/code><\/pre>\n<p><strong>MySSLSocketFactory.java<\/strong><\/p>\n<pre><code>public class MySSLSocketFactory extends SSLSocketFactory {\n    SSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\n    public MySSLSocketFactory(KeyStore truststore)\n            throws NoSuchAlgorithmException, KeyManagementException,\n            KeyStoreException, UnrecoverableKeyException {\n        super(truststore);\n\n        TrustManager tm = new X509TrustManager() {\n            public void checkClientTrusted(X509Certificate[] chain,\n                    String authType) throws CertificateException {\n            }\n\n            public void checkServerTrusted(X509Certificate[] chain,\n                    String authType) throws CertificateException {\n            }\n\n            public X509Certificate[] getAcceptedIssuers() {\n                return null;\n            }\n        };\n\n        sslContext.init(null, new TrustManager[] { tm }, null);\n    }\n\n    @Override\n    public Socket createSocket(Socket socket, String host, int port,\n            boolean autoClose) throws IOException, UnknownHostException {\n        return sslContext.getSocketFactory().createSocket(socket, host, port,\n                autoClose);\n    }\n\n    @Override\n    public Socket createSocket() throws IOException {\n        return sslContext.getSocketFactory().createSocket();\n    }\n}\n<\/code><\/pre>\n<p>It is working fine before, but now it fails. There are no any changes made in server.<\/p>\n<p>I already refered<\/p>\n<p>1) Android-Query &#8211; Random SSLExceptions<br \/>\n2) Intermittent Connection Reset by Peer errors in Android connecting to .NET REST endpoint<\/p>\n<p>3) Android HTTPS exception Connection reset by peer<\/p>\n<p>4) Why is HttpUrlConnection throwing an SSLException while on a mobile data connection?<\/p>\n<p>I have tested it in both wifi and mobile data. Application not works in both.<\/p>\n<p>If anybody face this problem before then please help me to solve it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I am calling https webservice and its works fine before, but now when i am trying to call it its give me following errors. Log Errors : 12-23 06:28:11.969: W\/System.err(3014): javax.net.ssl.SSLException: SSL handshake aborted: ssl=0x1cc160: I\/O error during system call, Connection reset by peer 12-23 06:28:11.979: W\/System.err(3014): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method) 12-23 06:28:11.979: W\/System.err(3014): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6226","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/6226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=6226"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/6226\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=6226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=6226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=6226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}