Tomcat强制跳转https

奥黛丽·逐爱者
2026-01-07 / 0 评论 / 4 阅读 / 正在检测是否收录...

不使用nginx代理Tomcat直接服务

1 全局

Tomcat的conf/server.xml找到这一段
默认是这样

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"        <!-- 改回 8443,不再强制 443 -->
           maxParameterCount="1000"
           URIEncoding="utf-8"/>

需要https

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443"
               maxParameterCount="1000"
               uRIEncoding="utf-8"

2 单个应用里

webapps/你的项目/WEB-INF/web.xml
默认

<!--
<security-constraint>
  ...
  <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</security-constraint>
-->

需要强制https

<!--跳转-->
    <security-constraint>
    <web-resource-collection>
        <web-resource-name>Secure Area</web-resource-name>
        <url-pattern>/*</url-pattern> <!-- 匹配所有 URL -->
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee> <!-- 强制 HTTPS -->
    </user-data-constraint>
</security-constraint>

“作用域”速查表

文件位置作用域优先级说明
conf/server.xml全局(整个 Tomcat)最低里面的 Connector、Host、Context 对所有应用生效。
conf/web.xml全局默认(所有应用共用)Tomcat 自带的默认部署描述符,相当于“父模板”。
webapps/xxx/WEB-INF/web.xml单个应用最高只影响 xxx 这个应用;与上面冲突时以它为准。
0

评论 (0)

取消