2016-10-24 5 views
1

私はAndroidでwebviewを持っています。 httpサイトからクライアントがホストするhttpsサイトにリダイレクトすると、断続的なHTTPS/SSLエラーが発生します。Android WebViewでHTTPS証明書が失敗することがある

障害ログ:

com.company.myapp D AppWebViewClient -> analyzeURL : 1936 : 2016/10/24 5:36:29 : URL: https://client.website.com/ApplicationRegPage/createAccount 
com.company.myapp D AppWebViewClient -> onReceivedSslError : 1936 : 2016/10/24 5:36:30 : Received SSL Error 
com.company.myapp D AppWebViewClient -> onReceivedSslError : 1936 : 2016/10/24 5:36:30 : SSL Error::https://client.website.com/ApplicationRegPage/createAccount:: primary error: 3 certificate: Issued to: CN=client.website.com,OU=MIT,O=Client\, 
            Inc,L=Mounds View,ST=Minnesota,C=US; 
com.company.myapp D Issued by: CN=Symantec Class 3 Secure Server CA - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US; 
com.company.myapp D on URL: https://client.website.com/ApplicationRegPage/createAccount 

com.company.myapp D AppWebViewClient -> printCertificate : 1936 : 2016/10/24 5:36:30 : Expanding Certificate: Issued to: CN=client.website.com,OU=MIT,O=Client\, Inc,L=Mounds View,ST=Minnesota,C=US; 
com.company.myapp D Issued by: CN=Symantec Class 3 Secure Server CA - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US; 
com.company.myapp D AppWebViewClient -> printCertificate : 1936 : 2016/10/24 5:36:30 : Issued by 
com.company.myapp D AppWebViewClient -> printDName : 1936 : 2016/10/24 5:36:30 : DName: CN=Symantec Class 3 Secure Server CA - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US 
com.company.myapp D AppWebViewClient -> printDName : 1936 : 2016/10/24 5:36:30 : CName: Symantec Class 3 Secure Server CA - G4 
com.company.myapp D AppWebViewClient -> printDName : 1936 : 2016/10/24 5:36:30 : OName: Symantec Corporation 
com.company.myapp D AppWebViewClient -> printDName : 1936 : 2016/10/24 5:36:30 : UName: Symantec Trust Network 

com.company.myapp D AppWebViewClient -> printCertificate : 1936 : 2016/10/24 5:36:30 : ValidNotAfter: Wed May 31 23:59:59 GApp+00:00 2017 
com.company.myapp D AppWebViewClient -> printCertificate : 1936 : 2016/10/24 5:36:30 : ValidNotBefore: Wed May 04 00:00:00 GApp+00:00 2016 

成功ログ:

com.company.myapp D AppWebViewClient -> analyzeURL : 1665 : 2016/10/24 5:28:44 : URL: https://client.website.com/ApplicationRegPage/createAccount 
com.company.myapp D AppWebChromeClient -> onConsoleMessage : 1665 : 2016/10/24 5:28:46 : Console Msg: https://client.website.com/ApplicationRegPage/createAccount::179:: Uncaught ReferenceError: dstb is not defined 
com.company.myapp D AppWebViewClient -> onPageFinished : 1665 : 2016/10/24 5:28:47 : Finished loading: https://client.website.com/ApplicationRegPage/createAccount 
com.company.myapp D AppWebViewClient -> printCertificate : 1665 : 2016/10/24 5:28:47 : HTTPS SSL Certificate for URL 
com.company.myapp D AppWebViewClient -> printCertificate : 1665 : 2016/10/24 5:28:47 : URL: https://client.website.com/ApplicationRegPage/createAccount 
com.company.myapp D AppWebViewClient -> printCertificate : 1665 : 2016/10/24 5:28:47 : Expanding Certificate: Issued to: CN=client.website.com,OU=MIT,O=Client\, Inc,L=Mounds View,ST=Minnesota,C=US; 
com.company.myapp D Issued by: CN=Symantec Class 3 Secure Server CA - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US; 
com.company.myapp D AppWebViewClient -> printCertificate : 1665 : 2016/10/24 5:28:47 : Issued by 
com.company.myapp D AppWebViewClient -> printDName : 1665 : 2016/10/24 5:28:47 : DName: CN=Symantec Class 3 Secure Server CA - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US 
com.company.myapp D AppWebViewClient -> printDName : 1665 : 2016/10/24 5:28:47 : CName: Symantec Class 3 Secure Server CA - G4 
com.company.myapp D AppWebViewClient -> printDName : 1665 : 2016/10/24 5:28:47 : OName: Symantec Corporation 
com.company.myapp D AppWebViewClient -> printDName : 1665 : 2016/10/24 5:28:47 : UName: Symantec Trust Network 
com.company.myapp D AppWebViewClient -> printCertificate : 1665 : 2016/10/24 5:28:47 : ValidNotAfter: Wed May 31 23:59:59 GApp+00:00 2017 
com.company.myapp D AppWebViewClient -> printCertificate : 1665 : 2016/10/24 5:28:47 : ValidNotBefore: Wed May 04 00:00:00 GApp+00:00 2016 

私はこのために、様々な "修正" を読みました "主エラー:3証明書" のAndroidのWebViewのさまざまな構成の変更を必要としますオブジェクト。私の設定ここに含め

protected void configureWebView(WebView mWebView) { 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.setWebViewClient(getWebViewClient()); 
    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    mWebView.getSettings().setBuiltInZoomControls(true); 
    mWebView.getSettings().setDomStorageEnabled(true); 
    // Chrome 
    mWebView.setWebChromeClient(getWebChromeClient()); 
} 

これらの障害はランダムである(私はすでにDOMストレージを設定していないを試してみました)。私はこのエラーが1日に10サイトの負荷で発生するのを見ました。残念ながら私のクライアントはそれを50%に近づけています。私は最初の起動(または新鮮なアプリのインストール、またはAndroid Studioのアプリへの新しくインストールされたアップデート)でこのエラーが頻繁に見られる傾向がありますが、私のクライアントははるかにランダムに見えるようです。

+0

TyrusとGrizzly(WebSocketとHTTP実装)のランダムTLSハンドシェイクの問題がありました。IIRCの問題は、バージョン4.4,5,6に沿ったアンドロイドTLS実装の変更でした。http:///stackoverflow.com/questions/28011581/websocket-ssl-handshake-failure – nandsito

+0

あなたの問題は他のアンドロイドバージョンで起こるのですか?明日、私のtyrus/grizzlyの回避策を思い出してください。 – nandsito

+0

Android 6.0.1でそれが確認されました。他のバージョンのクライアントからの応答を待っています。 (ローカルテストは主に6.0.1で行われました) – FishStix

答えて

0

前に、私はTyros 1.12(WebSocket lib)を破ったAndroid 6.0 TLS実装に問題がありました。実際に、AndroidはTyrusの依存関係を壊しました。それはGrizzly 2.3.22(HTTP/NIO lib)です。問題はhereと記載されています。このソリューションはGrizzly自体の回避策であり、Android TLSライブラリをより慎重に呼び出すことができました。

Androidのバグはthis oneと思われます。

Marshmallow WebViewについては、WebViewに委任する代わりに、HTTPS要求を傍受し、TLSハンドシェイクを処理することをお勧めします。 Grizzly 2.3.24以降のようなAndroidのバグを回避するTLSライブラリを使用することができます。

3

これはChromeの最近の回帰と主にWebViewに関連しているようです。あなたはM54安定のWebViewにアップグレードすることができ、問題を解決するために

https://bugs.chromium.org/p/chromium/issues/detail?id=664177

を参照してください。

+0

詳細:https://stackoverflow.com/a/44685976/49761 – Nash

関連する問題