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

如何解决Tomcat 10 SSL协议配置错误及版本与密码套件不匹配问题

解决Tomcat 10 SSL配置问题

一、修复SSL版本与密码套件不匹配错误

你的配置存在几个关键问题,直接导致ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误:

  • 密码套件配置截断:<SSLHostConfig>的ciphers属性中TLS_ECDHE开头的套件名称不完整,且包含已废弃的不安全套件SSL_RSA_WITH_RC4_128_SHA。
  • 证书重复配置:<Connector>和<SSLHostConfig>下同时配置了证书,Tomcat 10推荐统一在<SSLHostConfig>的<Certificate>节点中配置,避免冲突。
  • 套件兼容性不足:现有套件未覆盖现代主流客户端支持的安全套件组合。

修正操作:

  1. 移除<Connector>节点下的SSLCertificateFile和SSLCertificateKeyFile属性。
  2. 替换ciphers属性值为完整、安全的TLS 1.2兼容套件:
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384
    
  3. 保留sslEnabledProtocols="TLSv1.2",若需兼容更多客户端,可追加TLSv1.3(Tomcat 10原生支持)。

二、解决Http11AprProtocol不支持问题

Http11AprProtocol依赖APR(Apache Portable Runtime)库,Tomcat默认未内置该库,直接切换会报错:

  • 若无需APR协议,继续使用Http11NioProtocol即可,它是Tomcat默认NIO协议,性能满足大多数场景。
  • 若一定要启用APR,需:
    1. 下载对应操作系统的APR原生库(Windows为tcnative-1.dll,Linux为libtcnative-1.so)。
    2. 将库文件放入Tomcat的bin目录或系统默认库路径。
    3. 重启Tomcat后再切换协议为org.apache.coyote.http11.Http11AprProtocol。

修正后的完整配置示例

<Connector
      port="8443"
      protocol="org.apache.coyote.http11.Http11NioProtocol"
      maxThreads="150"
      minSpareThreads="25"
      SSLEnabled="true"
      sslEnabledProtocols="TLSv1.2"
      scheme="https"
      secure="true"
      enableLookups="false"
      disableUploadTimeout="true"
      acceptCount="400"
      URIEncoding="UTF-8"
      clientAuth="false"
      defaultSSLHostConfigName="abx.io"
      connectionTimeout="20000">
  <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/>
  <SSLHostConfig
        hostName="abx.io"
        ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384">
    <Certificate
          certificateFile="conf/cert_abx/cert.pem"
          certificateKeyFile="conf/cert_abx/privkey.pem"
          certificateChainFile="conf/cert_abx/chain.pem"/>
  </SSLHostConfig>
</Connector>

验证方法

修改配置后重启Tomcat,通过浏览器访问https://abx.io:8443,或执行openssl s_client -connect abx.io:8443命令,确认SSL连接正常协商。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:23:41