【问题标题】:java client application session resumptionjava客户端应用会话恢复
【发布时间】:2015-10-02 13:58:12
【问题描述】:

我正在使用 TLS 连接从 Java 客户端应用程序向服务器进行多次调用。为了避免 TLS 握手开销,我想使用会话 ID 恢复会话,类似于 Web 浏览器所做的。我目前正在使用 HttpsURLConenction 对象建立每个请求。

这是如何在 Java 中完成的?我在寻找什么 API?

【问题讨论】:

  • 任何现有的软件都可以做到这一点吗?

标签: java ssl java-client


【解决方案1】:

为了解决这个问题,我使用了 Apache 的 HttpClient API 而不是 HttpsURLConnection。我现在能够保留 SSL 上下文并进行多次调用,而无需进行完整的握手(例如客户端签名操作)。

SSLContext sslcontext = SSLContext.getInstance("TLSv1.2"); sslcontext.init(kmf.getKeyManagers(), tmf.getTrustManagers(),null); sslsf = new SSLConnectionSocketFactory(sslcontext, new String[] { "TLSv1.2" }, null, SSLConnectionSocketFactory.getDefaultHostnameVerifier()); ... //called multiple times CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslsf).build();

【讨论】:

  • 这是很久以前的事了,但如果我没记错的话,我正在解决一个客户端需要进行多次签名操作的问题。我不记得具体细节了,但它确实解决了每次拨打电话时都需要进行签名操作的问题。
【解决方案2】:

Java 已经支持会话恢复toto。你不需要在任何一端做任何事情。

【讨论】:

  • 您有任何指向此文档/描述的链接吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-11
  • 2017-09-08
  • 2011-06-14
  • 2017-04-01
  • 1970-01-01
  • 2013-08-22
  • 2014-04-14
相关资源
最近更新 更多