如何在 Android 上进行 SSL 会话恢复
Posted
技术标签:
【中文标题】如何在 Android 上进行 SSL 会话恢复【英文标题】:how to make SSL Session Resumption on Android 【发布时间】:2011-12-03 23:20:25 【问题描述】:我每 30 秒与服务器建立一次 SSL 连接,并且无法忍受 SSL 握手的开销,这需要将近 6K。我想要做的是使用 SSL 会话恢复(让我的客户端使用在上一个会话中从服务器收到的 SID)
我读过这篇文章: Reusing SSL Sessions in android with HttpClient 但是删除 registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); 行的神奇解决方案 只是对我不起作用(当客户端没有发送会话 id 时,我在 Wireshark 中看到它)即使它有一个。
有没有更好的在安卓上使用 SSLSessionCache / SSLCertificateSocketFactory 的例子? 谢谢
【问题讨论】:
尝试将端口号改为443 ***.com/questions/7105681/… 这个链接可能对你有帮助 Dharmendra:感谢您的回答,但这不是我想要的......我不是在问如何进行 httpget 或 post,而是如何使 ssl 会话恢复 我没有测试,但我认为会话缓存的关键是 createSocket(Socket s, String host, int port, boolean autoClose) 的 (host,port),其中主机和端口实际上可以是完全不同的主机和套接字端口。 我知道有点晚了...我有类似的问题***.com/q/15946228/194609 但您是否尝试检查这是否适用于您的浏览器?如果没有,那么您的服务器可能未配置为保存 ssl 会话 【参考方案1】:Dpes 使用更长的存活时间有帮助吗?
mHttpClient.setKeepAliveStrategy(new ConnectionKeepAliveStrategy()
@Override
public long getKeepAliveDuration(HttpResponse response, HttpContext context)
return 60 * 1000;
);
【讨论】:
以上是关于如何在 Android 上进行 SSL 会话恢复的主要内容,如果未能解决你的问题,请参考以下文章
使用 HttpClient 在 Android 中重用 SSL 会话