Android webview手动校验https证书(by 星空武哥)

当Android系统出现bug导致WebView无法验证HTTPS证书时,可以通过手动校验证书SHA256来解决。本文介绍了如何获取网站证书并进行SHA256校验,通过在`onReceivedSslError()`中判断并处理,确保安全加载网页。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

转载请标注原创地址:http://blog.csdn.net/lsyz0021/article/details/54669914


   有些时候由于Android系统的bug或者其他的原因,导致我们的webview不能验证通过我们的https证书,最明显的例子就是华为手机mate7升级到Android7.0后,手机有些网站打不开了,而更新了webview的补丁后就没问题了,充分说明系统的bug对我们混合开发webview加载https地址的影响是巨大的。那么我们怎么去解决这个问题呢?

 


      首先我们去分析一下出现的原因

     当webview加载https地址的时候,如果因为证书的问题出错的时候就会走onReceivedSslError()方法

webView.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {  super.onReceivedSslError(view, handler, error); }}
而super. onReceivedSslError()默认是

handler.cancel() 就是让加载的页面白屏,所有导致了如果webview校验证书存在异常,Android在默认情况下会显示白屏,我们也可调用handler.proceed(),大多时候很多人都是这个处理,但是这也就意味着https证书失去了他存在的意义了。



那么如果你的网站证书是正常的,但是因为系统的bug导致了加载异常,这时候就需要我们手动校验了。

其实我们是可以手动校验网站证书的sha256,如果异常之后校验sha256就执行handler.proceed(),失败就退出应用。

首先我们要获取网站的证书

   利用谷歌浏览器,打开网址并且按下“F12”,打开开发者模式


一步一步导出证书(这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值