我需要在我的应用程序(在Webview中)中通过https加载一些页面。 我知道你可以做到
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
Log.d("SSL", "ERROR "+ error);
handler.proceed(); // Ignore SSL certificate errors
}
但是这最终会破坏了首先使用https的目的,所以有没有正确的方法来实现这一点,通过将客户端证书添加到webview链甚至设备链中,这样我就可以使用SelfSigned证书了?
还有一个问题,就是在做handler.proceed();禁用加密。即如果我使用此连接发送用户名,它是否会以计划形式发送?
注意:如果有人需要更加“安全”地进行上述解决方法,您可以检查错误对象中的域并仅允许您的域测试CN = my.domain.com
答案 0 :(得分:1)
要使用设备上未预先安装的任何证书,您可以使用设备Settings
- > Install from storage
安装新证书。
WebView用于提供setCertificate()
的界面,但在API级别17中已弃用,这可能意味着您现在无法从应用程序安装证书。