linux

Tomcat日志中的SSL错误怎么办

小樊
34
2025-12-15 07:50:46
栏目: 云计算

Tomcat 日志中的 SSL 错误排查与修复

一、快速定位与通用修复

二、常见错误与对应处理

错误现象或日志关键词 可能原因 处理要点
java.io.IOException: Keystore was tampered with, or password was incorrect 密钥库路径错误、密码错误、权限不足 核对 keystoreFile 路径与读取权限;确认 keystorePass 正确;必要时重置密码并同步配置
unable to find valid certification path to requested target 客户端(或 Java 应用)不信任服务器证书链 将服务器证书或中间证书导入客户端 JRE cacerts;或配置自定义信任库 -Djavax.net.ssl.trustStore
证书过期 / NET::ERR_CERT_DATE_INVALID 证书已过期或未生效 重新申请并部署新证书,注意生效时间窗口
域名不匹配 / NET::ERR_CERT_COMMON_NAME_INVALID 访问域名不在 CN/SAN 申请包含正确域名的证书(含必要 SAN 条目)
颁发机构不受信任 / NET::ERR_CERT_AUTHORITY_INVALID 使用自签名或不受信任 CA 更换为受信任 CA 签发的证书
证书被吊销 / NET::ERR_CERT_REVOKED 证书被 CRL/OCSP 吊销 重新申请并部署有效证书
协议或套件不兼容 仅启用旧协议/弱套件 启用 TLSv1.2/TLSv1.3,配置强套件(如 ECDHE+AES-GCM
证书链不完整 缺少中间证书 将中间证书与服务器证书合并导入,或使用支持链的配置方式
端口冲突(如 443/8443 被占用) 其他进程占用端口 释放端口或调整 Tomcat 端口,并重启服务

三、server.xml 配置示例

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true">
  <SSLHostConfig>
    <Certificate certificateKeystoreFile="conf/keystore.jks"
                 certificateKeystorePassword="changeit"
                 type="RSA"/>
    <Protocols>TLSv1.2,TLSv1.3</Protocols>
    <Cipher>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</Cipher>
  </SSLHostConfig>
</Connector>
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true">
  <SSLHostConfig>
    <Certificate certificateFile="conf/cert.pem"
                 certificateKeyFile="conf/key.pem"
                 certificateChainFile="conf/chain.pem"
                 type="RSA"/>
    <Protocols>TLSv1.2,TLSv1.3</Protocols>
    <Cipher>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</Cipher>
  </SSLHostConfig>
</Connector>

四、验证与工具

五、仍无法解决时的建议

0
看了该问题的人还看了