2012-04-12 123 views
4

有任何使用客户端证书进行身份验证和PhoneGap的经验吗?我有一个由客户端证书保护的Web应用程序,现在我想使用PhoneGap访问此Web应用程序。该Web应用程序拒绝我的请求,因为它无法对我进行身份验证,因为没有找到证书。我通过Android默认浏览器下载了数据格式为PKCS#12的客户端证书,但是我现在只将它存储在浏览器密钥库中,而不是像Android这样的全局密钥库。所以总结一下:带有PhoneGap客户端证书的身份验证

1.)是否有可能在Android上使用客户端证书进行身份验证? 2.)如果是的话,PhoneGap也可以吗? 3.)如果是,我该怎么做?

谢谢!

问候,拉尔夫

比从未
+1

真的吗?没有人??请!!我现在发现的一件事是,客户端证书只适用于Android 4+ – RaHe 2012-04-20 16:20:45

回答

6

犹未晚:这个问题为Android 4+(至少到SDK 16)是的WebView被拒,SDK的隐藏onReceivedClientCertRequest,这是不能被覆盖的客户端证书身份验证。

这可以绕过隐藏类android.jar(见https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/),然后编译cordova(从https://github.com/apache/incubator-cordova-android)与覆盖CordovaWebViewClient :: onReceivedClientCertRequest。

我这样做是为了让init上的应用程序加载私钥和证书链(用户只需在第一个应用程序exec上从钥匙串中选择它)。这应该在另一个线程中完成;我怀疑这是不支持客户端证书认证的原因,因为主线程会等待用户选择要使用的证书和/或要加载的证书链,这是不可接受的。

编辑: 这是短暂的:似乎那里onReceivedClientCertRequest采用的是Android 4.2(SDK 17)删除

的结论是太快了:他们刚搬来的功能WebViewClientClassicExt类,所以你只要需要从它扩展CordovaWebViewClient而不是WebViewClient,它也适用于4.2。

+0

我似乎WebViewClientClassicExt不存在Android.Webkit包中的Android 4.2和4.3。 – ridan 2014-01-07 10:53:26

相关问题