Android Webview客户端证书,相互身份验证,Webview上的SSL

 心语忆录_288 发布于 2023-02-08 15:16

我有一个网页,需要Mutual auth加载页面.我使用ERROR_FAILED_SSL_HANDSHAKE获得onReceivedError().在Webkit中打印日志"无法建立安全连接".我已经广泛搜索但找不到答案.有几个帖子但没有结论.我在这里发布了所有3个解决方案.可能有效的解决方案是: - 解决方案1:无论如何都使用ClientCertRequestHandler(它被标记为隐藏,但显然仍然可用):

所以我修改了android.jar以包含内部API来覆盖onReceivedClientCertRequest()但是我没有在运行时获得回调.任何第三方浏览器都是如此.我尝试在标准浏览器中加载相同的网页.我在UI上收到一个回调,要求用户选择一个客户端证书.

所以似乎只有系统浏览器应用程序可以从Webkit获取onReceivedClientCertRequest()的回调.

对于iOS平台,Webview也无法直接加载网站.但是使用NSURL进行HTTPS连接会将客户端证书保留在内存中一段时间​​,并且Webview可以成功加载此页面.

在Android上,我通过注册加载客户端和服务器证书的SSLSocketFactory成功设置了HTTPS通信.我可以使用它进行REST API调用.但是,与iOS不同,我找不到Android webview可以使用客户端证书进行Mutual auth的方法.

我认为平台应该支持在Webview上进行相互认证,这是安全性的基本要求之一.这个问题有没有更新?

编辑1:

根据我在下面给出的答案,我在Android 4.0到4.3上工作了.Hoverer,现在在Android 4.4上,似乎WebViewClientClassicExt类本身被删除了.知道在这种情况下可以做些什么吗?为什么Android不允许在webview中设置ClientCertificates?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有