linux

Tomcat日志中SSL错误的解决方法

小樊
42
2025-12-01 12:45:31
栏目: 云计算

Tomcat日志中SSL错误的定位与修复

一、快速定位步骤

二、常见错误与对应修复

错误现象或日志关键词 可能原因 修复要点
IOException: Keystore was tampered with, or password was incorrect 密钥库路径错误、密码错误、文件损坏 核对 keystoreFile/keystorePass;用 keytool -list -keystore your.keystore 本地验证;确保文件权限与路径正确
unable to find valid certification path to requested target 证书链不完整(缺中间证书) 将中间证书导入密钥库或改用 PKCS12 + certificateChainFile;用 openssl s_client -connect host:8443 -showcerts 检查链
浏览器提示 NET::ERR_CERT_DATE_INVALID 证书过期或未生效 重新签发并在 server.xml 更新证书
浏览器提示 NET::ERR_CERT_COMMON_NAME_INVALID 访问域名不在 CN/SAN 申请包含正确域名的证书(含必要 SAN
浏览器提示 NET::ERR_CERT_AUTHORITY_INVALID 使用自签名或不受信任 CA 使用受信任 CA 证书;客户端需导入根证书到信任库
握手失败、仅支持弱协议/套件 协议或套件过旧/被禁用 启用 TLSv1.2/TLSv1.3,禁用 SSL/TLSv1.0/1.1 与弱套件;配置强套件白名单
Address already in use: bind 443/8443 端口被占用 释放端口或调整 Connector port;检查是否有其他进程占用
配置修改后仍不生效 Tomcat 未完全重启或浏览器缓存旧证书 彻底重启 Tomcat;浏览器清缓存或用隐私模式测试
反向代理后握手异常 代理与后端 SSL 配置不一致 统一协议/套件;必要时在代理侧正确设置证书与链,避免错误转发

三、server.xml 配置要点与示例

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS">
    <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"
           clientAuth="false">
    <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
看了该问题的人还看了