Tomcat 10配置原有JKS启动HTTPS失败报错求助
Tomcat 10 SSL配置错误解决(迁移自Tomcat9)
问题原因
Tomcat 10 重构了SSL连接器的配置规则,不再支持直接在<Connector>标签内设置keystoreFile、keystorePass等密钥库参数,必须通过<SSLHostConfig>和<Certificate>子元素定义SSL配置。你当前沿用Tomcat9的旧配置格式,导致Tomcat无法找到默认的SSLHostConfig实例,从而触发报错。
修复方案
替换你当前的8443端口<Connector>配置为以下内容:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" SSLEnabled="true" server=" "> <SSLHostConfig hostName="_default_" clientAuth="false" sslEnabledProtocols="TLSv1.1,TLSv1.2" ciphers="TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA" allowUnsafeLegacyRenegotiation="false"> <Certificate certificateKeystoreFile="c:\c.jks" certificateKeystorePassword="CARD24" type="JKS"/> </SSLHostConfig> </Connector>
关键配置变更点
- 将原
<Connector>内的clientAuth、sslEnabledProtocols、ciphers等SSL参数移至<SSLHostConfig>标签 - 原
keystoreFile替换为<Certificate>内的certificateKeystoreFile - 原
keystorePass替换为<Certificate>内的certificateKeystorePassword - 明确指定
<Certificate>的type:JKS密钥库填JKS,PKCS12(p12)密钥库填PKCS12 - 添加
hostName="_default_"确保匹配Tomcat默认的SSLHostConfig名称
验证步骤
修改后保存server.xml,重启Tomcat,检查启动日志是否无报错,同时测试HTTPS访问是否正常。
内容的提问来源于stack exchange,提问作者SAAD K
相关产品推荐
相关产品推荐

