Tomcat启动用户权限必须为非root权限、尽量降低tomcat启动用户的目录访问权限。
(1)您的业务不需要使用 Tomcat 管理后台管理业务代码,建议您使用安全组防火墙功能对管理后台 URL 地址进行拦截,或直接将 Tomcat 部署目录中 webapps 文件夹中的 manager、host-manager 文件夹全部删除,并注释 Tomcat 目录中 conf 文件夹中的 tomcat-users.xml 文件中的所有代码。
(2)您的业务系统确实需要使用 Tomcat 管理后台进行业务代码的发布和管理,建议为 Tomcat 管理后台配置强口令,并修改默认 admin 用户,且密码长度不低于10位,必须包含大写字母、特殊符号、数字组合。
修改 conf/server.xml 文件,将下列代码取消注释:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
启用访问日志功能,重启 Tomcat 服务后,在 tomcat_home/logs 文件夹中就可以看到访问日志。
修改 Tomcat 安装目录 conf 下的 tomcat-user.xml 文件,重新设置复杂口令并保存文件。重启 Tomcat 服务后,新口令即生效。
修改 conf/server.xml 文件把默认的 8080 访问端口改成其它端口。
修改访问 Tomcat 错误页面的返回信息,在 webapps\manger 目录中创建相应的401.html、404.htm、500.htm 文件,然后在 conf/web.xml 文件的最后一行之前添加下列代码:
<error-page>
<error-code>401</error-code>
<location>/401.htm</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.htm</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.htm</location>
</error-page>
在web.xml文件中,防止直接访问目录时由于找不到默认页面,而列出目录下的文件的情况。
<param-name>listings</param-name>
<param-value>false</param-value>
删除 webapps 目录下的 docs、examples、manager、ROOT、host-manager 文件夹。
编辑tomcat配置文件/conf/web.xml文件,查看是否禁用PUT、DELETE等危险的HTTP 方法,查看org.apache.catalina.servlets.DefaultServlet是否存在如下配置:
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
如果存在,则将false修改为true。readonly参数默认是true,即不允许delete和put操作。
使用HTTPS协议登录tomcat服务器管理页面。
(1)用JDK自带的keytool工具生成一个证书:
$JAVA_HOME/bin/keytool -genkey –alias tomcat –keyalg RSA -keystore /path/to/my/keystore
其中目录:/path/to/my需要用户自行创建。
(2)改tomcat安装目录下/conf/server.xml配置文件,更改为使用HTTPS方式,增加如下行:
<Connector classname="org.apache.catalina.http.HttpConnector"
port="8443" protocol="HTTP/1.1" minProcessors="5"
SSLEnabled="true"
maxprocessors="100"
enableLookups="true" acceptCount="10" debug="0"
scheme="https"
Factory_classname="org.apache.catalina.SSLServerSocketFactory"
secure="true"
clientAuth="false"
keystoreFile="/path/to/my/keystore"
keystorePass="123qwe"
sslProtocol="TLS"/>
其中keystorePass的值为生成keystore时输入的密码。
(3)重新启动tomcat服务
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有