Java JSSE SSLEngine 无法恢复 SSL session

标签 java ssl jsse sslengine

我正在编写一个使用 SSLEngine 和 NIO 的应用程序,我编写了客户端和服务器。 客户端能够连接到服务器,连接后我希望他能够执行 session 恢复/重新协商,但目前没有运气..

由于使用 SSLEngine 的代码相当大(SSLEngine 的用法非常复杂!),我将编写一个简单的伪代码来演示这种情况:

Server:
    global sslcontext initialized once
    await new client
    client.sslEngine = create new server ssl engine using the global sslcontext
    client.handleHandshake and wait for it to be done
    handle client.

Client:
    global sslcontext initialized once
    sslEngine = create new client ssl engine using the global sslcontext
    performHandshake and wait for it to be done
    disconnect (close gracefully the connection)
    sslEngine = create new client ssl engine using the global sslcontext
    configure engine to not allow session creation
    performHandshake and wait for it to be done

** 我更愿意发布可以提供帮助的代码的任何部分(甚至是完整的代码,尽管正如我所说,它很大......)

当我执行程序时,第一个连接成功,但第二个连接导致异常:

javax.net.ssl.SSLHandshakeException: No existing session to resume

我是否错过了 ssl session 恢复所需的一些要素?

最佳答案

如果您使用 SSLContext.createEngine(host, port) 创建 SSLEngine,SSLEngine 将仅恢复 session 。 。否则,它无法知道正在与谁通话,因此无法知道要加入哪个 SSLSession

关于Java JSSE SSLEngine 无法恢复 SSL session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44946148/

相关文章:

java - 使用 contains() java 读取大文件并进行过滤

android - 使用 SSLEngine 时出现异常

ssl - JSSE 的 Tomcat SSL 配置 - 什么是 sslProtocol 属性

Java - 检查另一个 Java 应用程序是否正在运行

java - 来自现有 RDD 的 Spark Streaming

java - 根据配置向不同的Kafka主题发送消息

node.js - node.js 上的服务器 HTTPS 不起作用

apache - mod24_ssl 不会读取针对 openssl 验证的证书

python - 操作系统错误 : Could not find a suitable TLS CA certificate bundle

performance - Java TLS 最大记录大小