如何禁用 Java 的 SSL 会话恢复
How to disable Java's SSL session resumption
我需要测试我们的nginx新的SSL连接握手性能,所以我们需要在客户端或服务器端禁用ssl恢复功能。
在nginx端很容易实现,只需要关闭session cache和session ticket,但是每次要测试产品性能时,我都必须禁用该功能,这很烦人。
所以另一种方法是在客户端禁用会话恢复,我们的基准程序是由Java编写的。我们发现合适的方法是 SSLContext 的 setSessionCacheSize 和 setSessionTimeout 函数,但是如果将值设置为 0,然后我发现所有的 ssl 连接都被重用,所以我必须将它设置为 1,这导致 90% 的连接恢复在我的测试。
所以我的问题是如何在与服务器建立 SSL 连接时禁用 Java JDK 8 中的 ssl 会话恢复。
- 从套接字中获取
SSLSession
。
- 呼叫
SSLSession.invalidate()
.
我需要测试我们的nginx新的SSL连接握手性能,所以我们需要在客户端或服务器端禁用ssl恢复功能。
在nginx端很容易实现,只需要关闭session cache和session ticket,但是每次要测试产品性能时,我都必须禁用该功能,这很烦人。
所以另一种方法是在客户端禁用会话恢复,我们的基准程序是由Java编写的。我们发现合适的方法是 SSLContext 的 setSessionCacheSize 和 setSessionTimeout 函数,但是如果将值设置为 0,然后我发现所有的 ssl 连接都被重用,所以我必须将它设置为 1,这导致 90% 的连接恢复在我的测试。
所以我的问题是如何在与服务器建立 SSL 连接时禁用 Java JDK 8 中的 ssl 会话恢复。
- 从套接字中获取
SSLSession
。 - 呼叫
SSLSession.invalidate()
.