You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.4.x-2.7.x启用SSL后出现ERR_TIMED_OUT问题求助

Spring Boot HTTPS服务首次调用成功,30秒后再次调用超时问题

问题现象

  • 我们有一台基于Spring Boot 2.4.x搭建的API服务器,使用公网域名和IP提供服务,已稳定运行多年。
  • 2023年1月1日后,用户反馈前端首次API调用成功,但30秒后再次调用时失败;用其他REST客户端测试结果一致,可排除前端问题。
  • Chrome开发者工具Network面板显示错误:(failed) net::ERR_TIMED_OUT

排查背景

  • 服务端在2023年1月1日前的两个月内,未修改任何代码、Spring Boot版本、配置,也未进行系统更新。
  • 曾猜测是客户端浏览器/系统更新导致,但回退旧版本后问题仍存在;也怀疑Tomcat或Spring Boot版本与当前客户端环境不兼容。
  • 客户端与服务器之间无代理服务器。

版本测试情况

  • 尝试升级至Spring Boot 2.7.x(对应Tomcat 9.0.71),启用SSL时问题依旧;所有Spring Boot/Tomcat版本下,不启用SSL的HTTP调用均稳定无超时问题。
  • 出现问题的环境:Spring Boot 2.4.2(Tomcat 9.0.43)、Spring Boot 2.7.8(Tomcat 9.0.71)

SSL配置(唯一差异项)

启用SSL的配置如下,且SSL已成功启用:

server.port=8081
server.ssl.enabled=true
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password={my_key_store_password}
server.ssl.key-store-type=PKCS12
server.ssl.key-alias={my_alias}

日志信息

  • 未启用DEBUG日志时,出现超时错误时Spring Boot控制台及日志文件无任何记录,说明请求未到达API服务,连接被Tomcat拦截。
  • 启用DEBUG日志后捕获到以下错误日志:
2023-02-15 05:41:53,658 DEBUG [https-jsse-nio-8081-exec-2] Http11Processor : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@523bac8a:org.apache.tomcat.util.net.SecureNioChannel@3326d48e:java.nio.channels.SocketChannel[connected local=/{my_server_ip}::8081 remote=/{my_client_ip}:55823]], Status in: [CONNECT_FAIL], State out: [CLOSED]
2023-02-15 05:41:53,658 DEBUG [https-jsse-nio-8081-exec-2] LimitLatch : Counting down[https-jsse-nio-8081-exec-2] latch=1
2023-02-15 05:41:53,658 DEBUG [https-jsse-nio-8081-exec-2] NioEndpoint : Calling [org.apache.tomcat.util.net.NioEndpoint@3e576e09].closeSocket([org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@523bac8a:org.apache.tomcat.util.net.SecureNioChannel@3326d48e:java.nio.channels.SocketChannel[connected local=/{my_server_ip}:8081 remote=/{my_client_ip}:55823]])

问题复现验证

  • 准备了极简测试项目,仅使用Spring官方REST示例代码,无额外配置或依赖;只需生成对应域名的PKCS12格式keystore.p12文件放入资源目录即可复现问题。
  • 生成PKCS12证书的命令:
openssl pkcs12 -export -in fullchain.pem -inkey privatekey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root
  • 验证发现:仅使用Tomcat无法复现该问题,推测并非单纯Tomcat问题。

内容的提问来源于stack exchange,提问作者Tina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 20:46:34