Chrome For Android - 如何拦截证书选择

Chrome For Android - How to intercept certificate selection

我遇到了企业内部网问题(只能在企业网络上访问)。 该网站需要在平板电脑上安装证书才能调用。在启动时,该网站调用了 10 多个同样受到保护的 url。 证书已正确安装在平板电脑上。

chrome Windows,我们完全没有问题。 但是当我们尝试从 chrome 访问网站时 Android,Chrome 不断询问要使用的证书(同样的问题描述 there) 所以实际上,当您连接到该网站时,您会看到 10 多个弹出窗口,询问您要使用的证书。当您重新启动设备时,您必须再次执行此操作。

我找到了 http://www.chromium.org/administrators/policy-list-3#AutoSelectCertificateForUrls,但它似乎不适用于 Android 设备

我想制作一个带有 Chrome 自定义标签的 APK,我想 "pre-laod" 调用 url 并拦截证书请求,然后我想我可以给它正确的,但这似乎是不可能的...

所以我想知道我该怎么做,我是 android 编码的新手,所以我不知道所有的可能性....

有什么想法吗?

谢谢!

解决方案是实现 WebView 组件,它允许您拦截来自服务器的证书请求。 您必须实施 WebViewClient class,并使用 onReceivedClientCertRequest :

@Override
public void onReceivedClientCertRequest(WebView view, final ClientCertRequest request) {
    Log.d(TAG, "Asking for certificate - url " + request.getHost() + " - " + request.getPort());
    request.proceed(mPrivateKey, mCertificates);
}

我想从 android 密钥库中检索证书,我分享了解决方案