当前位置: 首页 > ai >正文

Tomcat 配置 HTTPS 访问全攻略(CentOS 环境)

Tomcat 配置 HTTPS 访问全攻略(CentOS 环境)

一、环境说明

  • 操作系统:CentOS
  • Tomcat 版本:Apache Tomcat/9.0.105
  • 服务器 IP:192.168.1.35
  • 目标:将 Tomcat 默认的 HTTP 访问升级为 HTTPS,提升通信安全性

二、操作步骤详解

(一)查询 JDK 目录

通过以下命令确认 JDK 安装路径:

echo $JAVA_HOME

预期输出

/opt/jdk1.8.0_451

关键点:后续操作需依赖 JDK 自带的keytool工具,确保路径正确。

(二)使用 keytool 生成证书

1. 进入 JDK 的 bin 目录
cd $JAVA_HOME/bin
2. 执行证书生成命令
./keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat.keystore -validity 36500
3. 交互配置说明
  • 密钥库口令:设置证书存储密码(如:123456)
  • 个人信息:依次输入姓名、组织单位、组织名称、地区等(示例:CN=chen, OU=LG, O=LG, L=guangdong, ST=guangdong, C=CN)
  • 密钥口令:可与密钥库口令保持一致,直接按回车
4. 参数解析
  • -keystore:指定证书存储路径及文件名(本例存放在/usr/local/目录,文件名为tomcat.keystore)
  • -validity:证书有效期(36500 天≈100 年,默认 90 天)

(三)配置 Tomcat 服务器

1. 修改 conf/server.xml

原 HTTP 连接器配置(修改前)

<Connector port="8800" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxParameterCount="1000"/>

修改点

  • 将redirectPort从 8443 改为 443(HTTPS 默认端口)

新增 HTTPS 连接器配置

<Connector port="443"protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150"SSLEnabled="true"scheme="https"secure="true"clientAuth="false"sslProtocol="TLS"keystoreFile="/usr/local/tomcat.keystore"keystorePass="123456"/>

注意事项

  • protocol必须使用Http11NioProtocol,不可用HTTP/1.1
  • keystoreFile路径需与实际证书存储路径一致(Linux 系统注意路径大小写)
2. 配置 conf/web.xml 安全约束

在</welcome-file-list>标签后添加以下内容:

<login-config><!-- 客户端证书认证 --><auth-method>CLIENT-CERT</auth-method><realm-name>Client Cert Users-only Area</realm-name></login-config><security-constraint><!-- 保护所有Web资源 --><web-resource-collection><web-resource-name>SSL</web-resource-name><url-pattern>/*</url-pattern></web-resource-collection><!-- 强制加密传输 --><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>

配置意义

  • CLIENT-CERT 认证:要求客户端提供有效证书方可访问
  • CONFIDENTIAL 传输:确保所有数据通过 SSL/TLS 加密传输,防止窃听

(四)重启 Tomcat 服务

# 停止服务

./shutdown.sh

# 启动服务

./startup.sh

三、访问验证与常见问题

(一)浏览器访问测试

  • 访问地址:https://192.168.1.35:443
  • 预期结果
  • 首次访问可能出现安全警告(因使用自签名证书)
  • 点击 “高级”→“继续访问” 可进入 Tomcat 欢迎页面

(二)证书信息查看

  • 证书主题信息:
  • 颁发者:自签名(CN=chen, OU=LG, O=LG, L=guangdong, ST=guangdong, C=CN)
  • 有效期:从当前时间起 100 年
  • 公钥信息:RSA 算法,2048 位密钥长度

(三)安全警告处理

  • 原因:自签名证书未经过 CA 机构认证
  • 解决方案
  1. 生成证书请求(CSR)并提交给正规 CA 机构申请证书
  2. 使用keytool -importkeystore命令将证书转换为 PKCS12 格式(参考生成证书时的警告提示)

四、总结

通过以上步骤,成功在 CentOS 环境下为 Tomcat 9 配置了 HTTPS 访问。核心要点包括:

  1. 使用keytool生成自签名证书并正确配置路径
  2. 在server.xml中添加 HTTPS 连接器并指定证书信息
  3. 通过web.xml强制要求加密传输和客户端证书认证

生产环境中建议替换为 CA 签名证书以消除浏览器警告,进一步提升安全性。如需进一步优化性能,可考虑启用 TLSv1.2 + 协议并配置加密套件策略。

参考资料

  • Tomcat 官方 HTTPS 配置指南
  • Keytool 命令行参考手册
http://www.xdnf.cn/news/6529.html

相关文章:

  • WebSocket聊天室的简单制作指南
  • 使用IDEA开发Spark Maven应用程序【超详细教程】
  • JMeter 测试工具--组件--简单介绍
  • 解决CLion控制台不能及时显示输出的问题
  • 盲盒软件开发展望:从“随机消费”到“情感经济”,开启下一代娱乐消费革命
  • Go语言八股文之Mysql锁详解
  • 特征提取:如何从不同模态中获取有效信息?
  • Sprnig MVC 如何统一异常处理 (Exception Handling)?
  • 矫平机技术新维度:材料科学、数字孪生与零缺陷制造
  • 基于Matlab实现图像透明叠加程序
  • CSS- 2.1 实战之图文混排、表格、表单
  • Laravel 参数验证工具
  • 适应于全景Photo Sphere Viewer PHP切图算法
  • 代码随想录60期day38
  • 服务器内部可以访问外部网络,docker内部无法访问外部网络,只能docker内部访问
  • 网络安全-等级保护(等保) 2-6 GB/T 36958—2018 《信息安全技术 网络安全等级保护安全管理中心技术要求》-2018-12-28 发布【现行】
  • Spark,数据清洗
  • k8s部署实战-springboot应用部署
  • 技术融资:概念与形式、步骤与案例、挑战与应对、发展趋势
  • python打卡训练营Day27
  • 爬虫基础之抓包工具的使用
  • Spring Boot循环依赖的陷阱与解决方案:如何打破“Bean创建死循环”?
  • (面试)Android各版本新特性
  • Oracle学习日记--Oracle中使用单个inert语句实现插入多行记录
  • 支付宝小程序关键词排名优化中的常见错误
  • Linux下载与安装
  • leetcode:58. 最后一个单词的长度(python3解法)
  • SearchClassUtil
  • 102. 二叉树的层序遍历
  • “光伏+储能+智能调控”,CET中电技术分布式智能微网方案如何实现?