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

Tomcat 10.1.19 FIPS模式下SSL通信超时故障求助

Tomcat TLS握手超时故障分析与求助

环境配置

  • Tomcat版本:10.1.19
  • Connector配置:
port = 8443
protocol="org.apache.coyote.http11.Http11NioProtocol"
defaultSSLHostConfigName="defaultConfig"
  • SSLHostConfig配置:
<SSLHostConfig
          hostName="defaultConfig"
          certificateVerification="required"
          ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
          protocols="TLSv1.2"
          sessionCacheSize="10000"
          sessionTimeout="3630"
    >
  • JDK环境:类路径包含/opt/java/zulu17.50.20-sa-jdk17.0.11-linux_x64-fips-bc/fips_libs,启动参数添加-Dorg.bouncycastle.fips.approved_only=true

故障现象

使用带--tls-max 1.2参数的curl请求时,在完成"TLSv1.2 (IN), TLS handshake, Server key exchange (12):"步骤后等待约20秒,最终报错:

* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:8443
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:8443

Tomcat访问日志显示400响应:

10.29.5.112 - - 2024-10-02 00:05:31.204 null -1 "-" 400 - 0 - 10.29.5.22 - "-" "-" null

其中协议为null、端口-1、请求行为空、响应大小为-、耗时0。

排查过程

  • 限制SSL协议为TLSv1.2、使用FIPS合规cipher套件,无改善;
  • 启用-Djavax.net.debug=ssl及设置org.apache.catalina.level=FINE,未获取有效日志;
  • gnutls-util显示SSL握手完成,gnutls-cli输入HTTP请求后可正常通信,但curl仍超时;
  • TCP抓包显示证书请求与完成间存在20秒间隙,达到Tomcat连接超时后被关闭;wget请求耗时约30ms;
  • strace显示Tomcat存在5秒延迟(已将连接超时改为5秒),疑似CA证书分片导致;

临时解决

将truststore.jks文件大小从166k缩减至144k后,故障消失。现求助该故障的深层原因及优化方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 16:41:13