【问题标题】:An HTTPS Client for Android that doesn't use native_ssl不使用 native_ssl 的 Android HTTPS 客户端
【发布时间】:2014-11-24 02:14:06
【问题描述】:

this issue(引发this question)之后,由于我们没有得到一个好的答案,我们正在寻找一个替代的 HTTPS 客户端,一个不使用 Native_SSL 库的客户端(因为我们认为错误在那里)。

问题

我们正在尝试将 HTTPS 与客户端证书一起使用并上传大于 44K 的文件。在 cretin 点上传(使用 WireShark 检查)期间,服务器在 2 分钟内没有收到任何数据包,并关闭连接,导致“Connection Reset By Peer”。

检查替代方案/补充研究

我们检查了Apache Http Client port for android,但它在内部使用了本机 SSL 库。

我们也检查了Chilkat http client,但也没有用。

this question 进行的其中一个cmets(由@DArkO)让我想到也许OOB Android HTTP 客户端尝试执行分段上传但失败了——这可能是我所有问题的根本原因。

所以...

您会推荐什么替代 HTTP 客户端?

【问题讨论】:

  • 上传是否使用 HTTP 重置 - 没有 SSL? \
  • @MaTriXy:不。不使用 HTTPS 上传,就像使用 HTTPS 但不使用客户端证书上传一样没有问题,就像魅力一样。
  • 并更改证书?
  • @MaTriXy,它无需证书即可工作。证书本身已生成并签名(PKCS10 + PrivateKey --> PKCS7B + PrivateKey --> PKCS12 “完成”)。虽然我尝试过使用许多证书(该问题在我们的 5 个实验室中重现,每个 CA 都有他自己的 CA,但所有 CA 都属于同一供应商)并且一直失败。 A. 我不确定我可以在证书中更改什么。 B. 事实是所有其他 REST 操作都使用证书,并且由于证书交换是握手的一部分,我不认为那是钱的地方......除非你不这么认为......
  • 过去我偶然发现了一些问题,即证书是问题所在的多部分请求。也许试试(我很确定你已经在那里做了这些步骤,但仍然)chariotsolutions.com/blog/post/…

标签: android ssl https multipartform-data


【解决方案1】:

这是一种变通方法,而不是解决方案。

我们无法承受在这个问题上花费更多的资源......

我们通过将上传过程分为两个步骤来躲过一劫:
第一步(需要客户端证书)获取所有元数据并返回一个上传令牌(30 秒后到期)。
第二步不需要证书,但使用上传令牌执行上传(仍然通过 SSL)。

【讨论】:

  • 现在听起来是一个简单的解决方案。
  • 确实如此,但我仍然讨厌它。我仍然希望有更好的解决方案。
猜你喜欢
  • 2014-08-07
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 2014-04-23
  • 2011-12-24
  • 1970-01-01
相关资源
最近更新 更多