- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在我的 WebViewClient 中实现了 onReceivedSslError
方法来正确处理 webview 中的无效 https 证书:
@Override
public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
final AlertDialog.Builder builder = new AlertDialog.Builder(WebActivity.this);
String message = "SSL Certificate error.";
switch (error.getPrimaryError()) {
case SslError.SSL_UNTRUSTED:
message = "The certificate authority is not trusted.";
break;
case SslError.SSL_EXPIRED:
message = "The certificate has expired.";
break;
case SslError.SSL_IDMISMATCH:
message = "The certificate Hostname mismatch.";
break;
case SslError.SSL_NOTYETVALID:
message = "The certificate is not yet valid.";
break;
}
message += " Do you want to continue anyway?";
builder.setTitle("SSL Certificate Error");
builder.setMessage(message);
builder.setPositiveButton("continue", (dialog, which) -> handler.proceed());
builder.setNegativeButton("cancel", (dialog, which) -> handler.cancel());
final AlertDialog dialog = builder.create();
dialog.show();
}
当 webview 加载我的网页时,检测到 SslError.SSL_UNTRUSTED
错误。但是,如果我在 chrome(台式机或移动设备)中打开完全相同的 url,则证书被认为是有效且受信任的:
为什么会这样?
最佳答案
对我来说,这是我尝试访问的服务器的问题。它有一个损坏的中间证书链。这是链条断开的重定向服务器。当链断开时,webview 无法解决,因为它不知道在哪里寻找正确的证书。
Use this tool检查常见的错误配置。请务必同时检查所有重定向。
安卓不支持Authority Information Access
因此没有AIA Fetching
但是?!..它在浏览器中有效是的,它在浏览器中有效,因为所有浏览器都带有一个中间列表,以便在证书链断开时回退。
解决方案:修复服务器上的证书链。
关于Android webview 获取 sslError SSL_UNTRUSTED 但证书有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50544113/
您好,我正在尝试通过执行从表存储帐户查询数据的 python 脚本来开始 Azure ML 算法。我用这个来做: entities_Azure=table_session.query_entities
我有一个运行 omniauth-facebook 和 omniauth-twitter 的 Rails 4 应用程序,但所有登录尝试都会遇到 Faraday::SSLError -- SSL_conn
我在 python 中使用一个包,我试图通过简单的打印访问方法我想出了这个错误 ConnectionError: HTTPSConnectionPool(host='xxx.xxxxx.xxx', p
import sslcontext = ssl.create_default_context()context.load_cert_chain('cert.pem', 'key.pem') B
尝试使用 the SnapWrap library 时我遇到过这个错误: File "/usr/local/lib/python2.7/dist-packages/requests-2.7.0-p
我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它很棒!但是,CAS 需要通过 SSL 进行验证,所以我必须
我有一个带有 letsencrypt 证书的 python3 django 网站 一切正常,除了使用 python 请求到本地地址: response = requests.post('http://
我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它很棒!但是,CAS 需要通过 SSL 进行验证,所以我必须
尝试使用 Requests session 发出简单的获取请求,但我不断收到特定站点的 SSLerror。我认为问题可能出在网站上(我使用 https://www.ssllabs.com 进行了扫描,
我正在尝试通过 python 向 iPhone 发送推送通知,如 here 所述但我收到以下错误: Traceback (most recent call last): File "", line
我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它是一项很棒的工作!但是,CAS 需要通过 SSL 进行验证
这是我检查链接的功能。但是当链接是假的时它会抛出一个错误。例如,它适用于 twitter.com 但不适用于 twitt.com。 class Quality_Check: def check
我正在分析加密货币市场数据并使用某些交易所的公共(public) API。该程序每隔几秒发出一次 HTTPS 请求。奇怪的是,它恰好发出了 336 个请求,而在 337 个请求上它总是失败: /.rb
我正在尝试开始使用 PRAW,但在使用 login() 时遇到问题。 我有以下代码: import praw r = praw.Reddit('This is a test bot') r.login
我想使用从服务器生成的证书从我的客户端向服务器进行身份验证。我有一个 server-ca.crt,下面是正在运行的 CURL 命令。如何使用 python 请求模块发送类似的请求。 $ curl -X
我正在使用带有以下代码的 authlib: session = OAuth2Session(client_id, client_secret) token = session.fetch_access
我想使用从服务器生成的证书从我的客户端向服务器进行身份验证。我有一个 server-ca.crt,下面是正在运行的 CURL 命令。如何使用 python 请求模块发送类似的请求。 $ curl -X
当我尝试执行“conda update conda”时,我遇到了这个错误: 请你帮帮我! 最佳答案 如果您在防火墙或代理后面,您可能必须在您的 condarc 中将 ssl_verify 设置为 fa
我有包含 4 行的 fiddle.py import requests url = "https://randomuser.me/api/" locations = requests.get(url,
我不能在 Python 中使用不同的代理。 我的代码: import requests proxies = { "https":'https://154.16.202.22:3128',
我是一名优秀的程序员,十分优秀!