有任何使用客户端证书进行身份验证和PhoneGap的经验吗?我有一个由客户端证书保护的Web应用程序,现在我想使用PhoneGap访问这个Web应用程序. Web应用程序拒绝我的请求,因为它无法验证我,因为没有找到证书.我通过Androids默认浏览器下载了数据格式为PKCS#12的客户端证书但我们现在只存储在浏览器密钥库而不是Android的全局密钥库或类似的东西.总结一下:
1.)是否可以在Android上使用客户端证书进行身份验证?
2.)如果是,是否也可以使用PhoneGap?
3.)如果是,我怎么能完成它?
谢谢!
此致,拉尔夫
解决方法:
迟到总比没有好:android 4的问题(至少在SDK 16之前)是webview拒绝使用SDK隐藏的onReceivedClientcertrequest进行客户端证书身份验证,而无法覆盖.
这可以通过包含隐藏类到android.jar(参见https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/)然后使用覆盖CordovaWebViewClient :: onReceivedClientcertrequest编译cordova(来自https://github.com/apache/incubator-cordova-android)来绕过.
我这样做是为了使init上的app加载私钥和证书链(用户只在第一个应用程序exec上从keychain中选择它).这应该在另一个线程中完成;我怀疑这是不支持客户端证书身份验证的原因,因为主线程会等待用户选择要使用的证书和/或要加载的证书链,这是不可接受的.
编辑:
这是短暂的:似乎在Android 4.2中删除了onReceivedClientcertrequest(SDK 17)
结论太快了:他们只是将功能移到WebViewClientClassicExt类,所以你只需要从它而不是WebViewClient扩展CordovaWebViewClient,它也适用于4.2.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。