spring boot - undertow https 会话不会过期或停止 ssl 握手

Posted

技术标签:

【中文标题】spring boot - undertow https 会话不会过期或停止 ssl 握手【英文标题】:spring boot - undertow https session not expire or stop ssl handshake 【发布时间】:2021-09-17 00:56:14 【问题描述】:

我有一个用于使用 https 启动的 Spring Boot 应用程序 (Java 11) 的 Undertow 容器。 该应用程序正在与 ios (Swift) 和 android 手机进行通信。我注意到一段时间不使用手机后 ( 1 分钟),第一个请求需要更多时间,因为执行了 SSL 握手。

我想知道是否有缓存/使 https 会话无效的选项,以便较长时间后的第一个请求不会再次进行 hanshake。

【问题讨论】:

您正在搜索的是 TLS 会话恢复。据我所知,Undertow 使用标准的 Java TLS 实现(SSLServerSocket),因此这个问题应该和你的一样:***.com/questions/59378616/… 应该在客户端和服务器上都这样做还是在服务器上就足够了? 我不知道。可能是服务器就足够了,但是我不知道是否可以在 Android 和 iOS 上使用会话恢复并且默认启用。 【参考方案1】:

根据罗伯特的评论,我将详细说明答案。

我用过

-Djavax.net.debug=ssl:handshake:verbose

帮助我跟踪 ssl 握手。 然后,在控制台中查看日志后,我发现了负责实现 TLS 的类。使用调试我发现了这个属性。我认为对于 Tomcat 应该是类似的。

server.undertow.no-request-timeout 我在 application.properties 中设置为 -1

客户端(手机:IOS 和 Android)无需更改。

【讨论】:

以上是关于spring boot - undertow https 会话不会过期或停止 ssl 握手的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 中的 Undertow 忽略 server.ssl.ciphers 属性

SpringBoot2使用Undertow来提高应用性能(spring-boot-starter-undertow)

Spring Boot 内嵌容器Undertow参数设置

Spring Boot 内嵌容器Undertow参数设置

如何在 Spring Boot 中启用 appication.properties 中的 undertow 登录

Spring Boot 内嵌容器Undertow取代tomcat