2017-05-18 17 views
1

リクエストを実行してから1週間後、このSSLHandschakeExceptionが発生します。インターネットを検索していますが、問題を解決するものは何も見つかりませんでした。作業に使用されたコードは、変更されずに動作を停止しました。 SSL証明書は有効で、ブラウザやAndroid搭載端末でも動作します。しかし、アプリではありません。Android SSLHandShakeException:Android 6.0.1でハンドシェイクが失敗しました

Android 6.0.1搭載のNexus 5でアプリを実行します。アプリは、通常のものだけ、リクエストを行うためにVolleyを使用します。

最も奇妙なことは、アプリをアプリから削除してアプリを実行するときに機能することです。しかしその後はそうではありません。

完全なスタックトレース:

com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: Handshake failed 
     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:151) 
     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112) 
    Caused by: javax.net.ssl.SSLHandshakeException: Handshake failed 
     at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:396) 
     at com.android.okhttp.internal.http.SocketConnector.connectTls(SocketConnector.java:103) 
     at com.android.okhttp.Connection.connect(Connection.java:143) 
     at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:185) 
     at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128) 
     at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:341) 
     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 
     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) 
     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:437) 
     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:388) 
     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:501) 
     at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105) 
     at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java) 
     at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:110) 
     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:96) 
     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)  
    Suppressed: javax.net.ssl.SSLHandshakeException: Handshake failed 
     ... 16 more 
     Suppressed: javax.net.ssl.SSLHandshakeException: Handshake failed 
     ... 16 more 
     Suppressed: javax.net.ssl.SSLHandshakeException: Handshake failed 
     ... 16 more 
     Caused by: javax.net.ssl.SSLProtocolException: SSL handshake terminated: ssl=0xab1e5c00: Failure in SSL library, usually a protocol error 
    error:100c543e:SSL routines:ssl3_read_bytes:TLSV1_ALERT_INAPPROPRIATE_FALLBACK (external/boringssl/src/ssl/s3_pkt.c:972 0xab4705c0:0x00000001) 
     at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 
     at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:324) 
     ... 15 more 
    Caused by: javax.net.ssl.SSLProtocolException: SSL handshake terminated: ssl=0xab1e5c00: Failure in SSL library, usually a protocol error 
    error:100c543e:SSL routines:ssl3_read_bytes:TLSV1_ALERT_INAPPROPRIATE_FALLBACK (external/boringssl/src/ssl/s3_pkt.c:972 0xab4705c0:0x00000001) 
     at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 
     at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:324) 
     ... 15 more 
    Caused by: javax.net.ssl.SSLProtocolException: SSL handshake terminated: ssl=0xab1e5c00: Failure in SSL library, usually a protocol error 
    error:100c543e:SSL routines:ssl3_read_bytes:TLSV1_ALERT_INAPPROPRIATE_FALLBACK (external/boringssl/src/ssl/s3_pkt.c:972 0xab4705c0:0x00000001) 
     at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 
     at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:324) 
     ... 15 more 
    Caused by: javax.net.ssl.SSLProtocolException: SSL handshake terminated: ssl=0xab1e5c00: Failure in SSL library, usually a protocol error 
    error:100c5410:SSL routines:ssl3_read_bytes:SSLV3_ALERT_HANDSHAKE_FAILURE (external/boringssl/src/ssl/s3_pkt.c:972 0xab4705c0:0x00000001) 
    error:100c009f:SSL routines:ssl3_get_server_hello:HANDSHAKE_FAILURE_ON_CLIENT_HELLO (external/boringssl/src/ssl/s3_clnt.c:750 0xab23259f:0x00000000) 
     at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 
     at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:324) 
     ... 15 more 

答えて

1

としては、ここで説明:https://github.com/square/okhttp/issues/1582#issuecomment-97104082

をあなたがそれらのいずれかの状況で次のようになります。

  1. あなたはhttps://example.comというサイトにアクセスしてくださいとあなたはサイトに終わる はhttps://example.comに表示されていますが、https://no-example.comの の証明書を提供しています。 OkHttpは正しく接続するために に失敗します。クロムなどのブラウザでは、

  2. その他の例外は、証明書が提供されたことを示した「これは、あなたがそれだと思うページではありません」の 線に沿って、コンソールに警告を参照してくださいねサーバー、 それは

あなたはおそらく間違っに、より多くのあなたのSSLの問題をデバッグする必要があるルート証明書が クライアントデバイス上ではなかったので、信頼されていなかった(あるいは期限が切れている場合があります)証明書の設定サーバー上のオンまたはクライアント上の失効/期限切れの証明書。問題がどこにあるのかを理解した時点でthisに似たようなことをすることができます

+0

こんにちはMatPag、ありがとうございます。 1.これを確認しました。証明書は有効です(Chromeでも可)。彼らは何かを知っていれば、私たちの証明書のサプライヤに質問しました2.クライアント上に失われた/期限切れの証明書をデバッグする方法を知っていますか? – TomWebDev

+0

インターネット上で証明書を取得し、クライアントにインストールされている証明書と照合して、証明書がないかどうかを確認することができます。この場合、信頼できる証明書に手動で証明書を追加する必要があります。任意のヘルプがあれば[ここ]を読む(http://stackoverflow.com/questions/13862908/ssl-certificate-is-not-trusted-on-mobile-only) – MatPag

関連する問題