gpt4 book ai didi

android - 通过 Chrome/Android 下载管理器挂起通过 HTTPS 下载文件

转载 作者:行者123 更新时间:2023-11-29 01:36:08 25 4
gpt4 key购买 nike

当通过 HTTPS 从安全区域下载文件时,Android 下载管理器中的文件下载挂起。它显示它将下载文件,然后什么也不做。

Android 4.1.2 果冻 bean

默认浏览器 (Chrome)

有趣的是,从其他站点进行 HTTPS 下载也可以。所以没有一般​​的 SSL 问题。所有公司的手机都受到影响。不是手机的问题。所有下载都会受到影响。这不是文件。它在使用 Firefox 而不是 Chrome 时有效。它适用于 iOS 上的 chrome。

这是数千名员工的标准智能手机。所以安装 firefox 不是一个选项。更新不是一种选择。

我首先想到下载管理器会丢失 session 。所以我在两者之间放置了一个调试代理。 session 信息正确传递。请求看起来不错。

GET /static/documents/testfile.pdf HTTP/1.1
Host: acmeintranet.acme.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Linux; Android 4.1.2; HUAWEI G525-U00 Build/HuaweiG525-U00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36
Referer: https://acmeintranet.acme.com/en/mob/ittest-page.htm
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: EdgeAccessCookie=FooFooFooFoo...

甚至响应与我从浏览器获得的响应完全相同。通过服务器和 android 智能手机之间的调试代理,下载工作正常。对我来说,区别似乎只是 SSL 证书。当我在中间使用带有 SSL 解密的调试代理时,代理使用原始 ssl 证书。 Android 手机将从调试代理获取证书。

可能是某些证书或证书类型有问题?

最佳答案

我们确实找到了解决方案。

问题是,IP 地址被用于多个域。每个域都有自己的证书。

bowser 会使用 SNI 告诉服务器需要哪个证书。如果没有收到该信息,服务器将发送默认证书。在我们的例子中,这是错误的。因此证书与域不匹配,下载挂起。

事实上,旧的 android 版本不支持 SNI。

Android SSL - SNI support

关于android - 通过 Chrome/Android 下载管理器挂起通过 HTTPS 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27943622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com