这是服务器证书校验WebView的安全问题

服务器证书校验主要针对 WebView 的安全问题。在 app 中需要通过 WebView 访问 url,因为服务器采用的自签名证书,而不是 ca 认证,使用 WebView 加载 url 的时候会显示为空白,出现无法加载网页的情况。使用 ca 认证的证书,在 WebView 则可以直接显示出来,不需要特殊处理。以往针对自签名证书的解决方案是继承 WebViewClient 重写 onReceivedSslError 方法,然后直接使用 handler.proceed(),该方案其实是忽略了证书,存在安全隐患。安全的方案是当出现了证书问题的时候,读取 asserts 中保存的的根证书,然后与服务器校验,假如通过了,继续执行 handler.proceed(),否则执行 handler.cancel()。

简单的解决方案(不安全)

wv.setWebViewClient(new WebViewClient(){

@override

public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){

//handler.cancel(); 默认的处理方式,WebView变成空白页

handler.proceed();接受证书

//handleMessage(Message msg); 其他处理

}

// 这行代码一定加上否则效果不会出现

webView.getSettings().setJavaScriptEnabled(true);

今天就写到这里啦~

小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~大家要天天开心哦

欢迎大家指出文章需要改正之处~ 学无止境,合作共赢

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

推荐链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。