Apache Tomcat9 SSL重定向失效、HTTPS无法连接问题排查求助
问题排查与解决步骤
1. 优先修正端口访问错误
你配置的HTTPS Connector端口是8443,实际访问的是8433,端口不一致直接导致连接失败,先改为访问https://服务器IP:8443测试。
2. 检查Tomcat启动状态与日志
- 到Tomcat安装目录的
logs文件夹下查看catalina.out或者catalina.日期.log文件,排查启动时是否有报错:- 检查是否有端口被占用的错误提示,Windows下可以用命令
netstat -ano | findstr "目标端口号"查看12001、8443端口是否被Tomcat进程占用 - 检查是否有密钥库加载失败的报错,确认
keystore.jks文件路径是否正确,keystorePass密码是否和你生成证书时设置的一致
- 检查是否有端口被占用的错误提示,Windows下可以用命令
3. 修正证书生成规则(适配IP访问场景)
你生成证书的命令没有指定IP作为SAN(主题备用名称),现代浏览器/HTTP客户端会校验证书的SAN字段,仅把IP填到名字与姓氏字段不生效,会导致SSL握手失败。重新生成证书的命令如下:
keytool -genkey -keyalg RSA -alias tomcat -keystore keystore.jks -validity 365 -keysize 2048 -ext san=ip:你的服务器实际IP
生成过程中"名字与姓氏"字段也填写你的服务器IP,其他字段按需填写即可。生成后替换掉原来的keystore.jks文件,重启Tomcat。
4. 修正HTTP自动跳转配置
如果需要HTTP访问自动跳转到HTTPS,需要额外修改conf/web.xml文件,在文件末尾</web-app>标签之前添加以下配置:
<security-constraint> <web-resource-collection> <web-resource-name>Entire Application</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
配置完成后重启Tomcat,访问http://IP:12001就会自动重定向到HTTPS端口。
5. 防火墙与端口校验
- 确认Windows服务器的防火墙入站规则已经开放
8443、12001端口的TCP访问权限 - 本地测试可以先在服务器上用浏览器访问
https://127.0.0.1:8443,排除网络层面的问题
内容的提问来源于stack exchange,提问作者kakakakakakakk
相关产品推荐
相关产品推荐

