【问题标题】:File download via HTTPS via Chrome / Android Download Manager hanging通过 HTTPS 通过 Chrome 下载文件 / Android 下载管理器挂起
【发布时间】:2015-03-12 16:14:40
【问题描述】:

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

Android 4.1.2 果冻豆

默认浏览器 (Chrome)

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

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

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

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...

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

也许某些证书或证书类型有问题?

【问题讨论】:

    标签: android ssl https


    【解决方案1】:

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

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

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

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

    Android SSL - SNI support

    【讨论】:

    • 问题,其实是安卓下载管理器不支持SNI
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 2013-11-30
    • 1970-01-01
    相关资源
    最近更新 更多