Tomcat 作为常见的 Java Web 容器,安全性设置非常重要。下面从系统层面、Tomcat 配置、应用层面、运维层面给你一个较全面的安全加固清单,适用于生产环境。
useradd tomcat
chown -R tomcat:tomcat /opt/tomcat
su tomcat
❌ 不要用 root 启动 Tomcat
rm -rf webapps/ROOT
rm -rf webapps/docs
rm -rf webapps/examples
rm -rf webapps/host-manager
rm -rf webapps/manager
manager / host-manager 仅在开发环境使用
conf/server.xml
<Server port="8005" shutdown="SHUTDOWN">
✅ 修改:
<!-- 注释或删除 -->
<!-- <Connector port="8009" protocol="AJP/1.3" /> -->
<Connector port="8443" protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https" secure="true"
keystoreFile="conf/keystore.jks"
keystorePass="password" />
并配置 HTTP → HTTPS 跳转。
conf/tomcat-users.xml
<user username="admin" password="强密码" roles="manager-gui"/>
并限制 IP:
webapps/manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.1.*" />
conf/web.xml
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
conf/server.xml
<Connector ... server="Unknown" />
或自定义 ServerInfo.properties
<Valve className="org.apache.catalina.valves.ErrorReportValve"
showReport="false" showServerInfo="false" />
conf/server.xml
<Host autoDeploy="false" deployOnStartup="false" />
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="access." suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
用户 → Nginx(HTTPS + WAF) → Tomcat(内网)
如果你愿意,我可以:
你当前用的是哪个 Tomcat 版本?部署在内网还是公网?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。