基线扫描tomcat安全加固-检查是否支持HTTPS等加密协议

背景:基线扫描时,docker镜像中的tomcat在检查是否支持HTTPS等加密协议这一项上未通过。

思路:先通过JDK自带的keytool工具生成证书,再从tomcat的server.xml配置文件中增加配置。

我不确定不同版本的JDK生成的证书是否可以通用,所以我使用镜像自带的jdk生成证书,

因为我使用的是docker镜像运行项目,所以我先进入容器内部,使用jdk生成证书,让后导出证书,放到dockerfile文件中,每次打包都打进镜像。

解决方案:

1、进入容器内部:

docker exec -it nginx_latest bash #nginx_latest是容器名;

2、生成证书:

/usr/local/openjdk-11/bin/keytool -genkey --alias tomcat --keyalg RSA -keystore /path/to/my/keystore

/usr/local/openjdk-11是你的jdk路径,/path/to/my/keystore是生成的证书路径,

注意:

(1)、生成证书的命令从网页上复制后执行可能会有报错, 最好是对比着手敲一遍,不知道是不是编码格式的问题。

(2)、keystore是一个文件不是一个目录,会在/path/to/my目录下生成一个keystore证书文件。

(3)执行这个指令后,会让输两次密码,然后输姓,输工作单位,所在地市,地市编码,最后确认。每次都会给提示让输入什么,每次输入完回车就可以。

3、从容器中导出证书:

docker cp 容器id或名称:容器内地址 容器外地址 如:docker cp mysql:/path/to/my/keystore /root

4、打镜像:

把keystore文件和dockerfile文件放再一起,然后在dockerfile文件上加上

COPY keystore /usr/local/tomcat/keystore

5、配置server.xml:

<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="/usr/local/tomcat/keystore"

keystorePass="pwssword"

sslProtocol="TLS"/>

keystoreFile="/usr/local/tomcat/keystore" 这个是存放的地址;keystorePass="pwssword" 这个是密码。

然后再运行镜像就可以了。

如果不是docker运行的项目,只需要执行第2步和第5步就可以;

相关推荐
用户9623779544812 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机15 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机15 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544817 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star17 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户9623779544820 小时前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
小时前端20 小时前
HTTPS 页面加载 HTTP 脚本被拦?同源代理来救场
前端·https
YuMiao21 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
cipher2 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
Jony_4 天前
高可用移动网络连接
网络协议