質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

0回答

2182閲覧

kotlin + webviewでwebページを読み込んだときにonReceivedSslErrorが呼ばれてしまう

momoyuri

総合スコア35

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2020/03/04 15:14

編集2020/03/05 00:47

いつもお世話になっております。
kotlin + webviewでwebviewアプリの作成をしております。
https://goole.co.jpは読み込めるのに、本来読み込みたいサイト(下記サンプルソースの https://example.com )のURLを指定すると、なぜか画面が真っ白になってしまい、調査をしていたところ、こちらに記載のあるようにSSLのエラーがLogcatに出ておりました。

E/chromium: [ERROR:ssl_client_socket_impl.cc(941)] handshake failed; returned -1, SSL error code 1, net_error -202

下記のようなコードで onReceivedSslError をオーバーライドして handler.proceed() を設定する事でページ自体を表示させる事は出来たのですが、上記の参考サイトにIf you do not upload your app to the Play Store, you can just ignore SSL certificate errorsとあったので、ストアにこのまま出してはいけないのかなと思い、解決策を模索しております。

chromeのデベロッパーツールのSecurityタブでは、HTTPSの検査は問題ないように見えており、何が原因なのかわからず、困っております。
どなたか、解決策をご教授頂けますと幸いでございます。

何卒、よろしくお願いいたします。
chromeのデベロッパーツールのSecurityタブ

MainActivity.kt

import android.net.http.SslError import android.os.Bundle import android.webkit.SslErrorHandler import android.webkit.WebView import android.webkit.WebViewClient import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { private lateinit var webView: WebView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) webView = findViewById(R.id.webview) as WebView webView.webViewClient = object : WebViewClient() { override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean { android.util.Log.d("MainActivity", url) view?.loadUrl(url) return true } override fun onReceivedSslError( view: WebView?, handler: SslErrorHandler, error: SslError? ) { android.util.Log.d("MainActivity", error.toString()) handler.proceed() // Ignore SSL certificate errors } } webView.loadUrl("https://www.example.com") } }

SslErrorの内容

D/MainActivity: primary error: 3 certificate: Issued to: CN=www.example.com,OU=Domain Control Validated,C=JP; Issued by: CN=AlphaSSL CA - SHA256 - G2,O=GlobalSign nv-sa,C=BE; on URL: https://www.example.com/

確認した端末

  • SO-01M (Android9)
  • Pixel 3a (Android10)
  • エミュレータ

上記それぞれ、同じ結果となりました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/03/04 16:34

エラーが出るのは Emulator ですか、それとも実機ですか? Android のバージョンは?
momoyuri

2020/03/05 00:48

質問ありがとうございます。 確認端末とOSを追記いたしました。実機、Emulatorそれぞれで確認をしました。 OSバージョンは9と10で確認をし、同じようにエラーが発生しております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問