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)