tomcat9(https)与IDEA的配置实践

 更新时间:2026年06月24日 14:35:37   作者:笑锝没心没肺  
本描述概括了生成Tomcat证书的过程,包括使用keytool工具生成证书及配置Tomcat服务器使用HTTPS,确保网站安全传输

一.  创建tomcat证书

这里使用JDK自带的keytool工具来生成证书:

1. 在jdk的安装目录\bin\keytool.exe下打开keytool.exe

2. 在命令行中输入以下命令

keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "g:\tomcat.keystore"  

以上命令将生产一对非对称密钥和自我签名的证书g:\tomcat.keystore

注意:“名字与姓氏”应该是域名,输成了姓名,和真正运行的时候域名不符,会出问题

这里我输入的密码是123456,  域名是以tomcat为例,  省市以广东深圳为例

keytool工具介绍

  • -genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
  • -alias       产生别名
  • -keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中)
  • -keyalg      指定密钥的算法 (如 RSA  DSA(如果不指定默认采用DSA))
  • -validity    指定创建的证书有效期多少天
  • -keysize     指定密钥长度
  • -storepass   指定密钥库的密码(获取keystore信息所需的密码)
  • -keypass     指定别名条目的密码(私钥的密码)
  • -dname       指定证书拥有者信息
  • -list        显示密钥库中的证书信息      keytool -list -v -keystore 指定keystore -storepass 密码
  • -export      将别名指定的证书导出到文件
  • -file        参数指定导出到文件的文件名
  • -delete      删除密钥库中某条目 
  • -printcert   查看导出的证书信息  
  • -keypasswd   修改密钥库中指定条目口令
  • -storepasswd  修改keystore口令 
  • -import          将已签名数字证书导入密钥库
  • -certreq            生成证书请求
  •  -changealias        更改条目的别名
  •  -delete             删除条目
  •  -exportcert         导出证书
  •  -genkeypair         生成密钥对
  •  -genseckey          生成密钥
  •  -gencert            根据证书请求生成证书
  •  -importcert         导入证书或证书链
  •  -importpass         导入口令
  •  -importkeystore     从其他密钥库导入一个或所有条目
  •  -keypasswd          更改条目的密钥口令
  •  -list               列出密钥库中的条目
  •  -printcert          打印证书内容
  •  -printcertreq       打印证书请求的内容
  •  -printcrl           打印 CRL 文件的内容
  •  -storepasswd        更改密钥库的存储口令
  • keytool -importkeystore [OPTION]...
  • 从其他密钥库导入一个或所有条目
  • -srckeystore             源密钥库名称
  •  -destkeystore           目标密钥库名称
  •  -srcstoretype           源密钥库类型
  •  -deststoretype          目标密钥库类型
  •  -srcstorepass                源密钥库口令
  •  -deststorepass               目标密钥库口令
  •  -srcprotected                  受保护的源密钥库口令
  •  -srcprovidername     源密钥库提供方名称
  •  -destprovidername   目标密钥库提供方名称
  •  -srcalias                   源别名
  •  -destalias                 目标别名
  •  -srckeypass                      源密钥口令
  •  -destkeypass                     目标密钥口令
  •  -noprompt                         不提示
  •  -providerclass         提供方类名
  •  -providerarg                     提供方参数
  •  -providerpath               提供方类路径
  •  -v            显示密钥库中的证书详细信息

二. 配置tomcat服务器

 定位到tomcat服务器的安装目录, 找到conf下的server.xml文件

<!--
     <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
                clientAuth="false" sslProtocol="TLS" />
     -->

去掉注释,修改为:

<Connector port="8443"  protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
        keystoreFile="/home/weblogic12/apache-tomcat-cnooc/ssh/tomcat.keystore"
        keystorePass="changeit" />

三. 启动tomcat服务器

在浏览器中输入: https://localhost

修改web.xml文件

Http自动跳转Https

①编辑conf/web.xml文件

②在web.xml末尾加上如下配置,直接在节点下和同级:

<!--开启http强制跳转https访问-->
      <login-config>
          <!-- Authorization setting for SSL -->
          <auth-method>CLIENT-CERT</auth-method>
          <realm-name>Client Cert Users-only Area</realm-name>
      </login-config>
      <security-constraint>
          <!-- Authorization setting for SSL -->
          <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>

修改sever.xml文件

修改非SSL连接器的请求跳转到SSL连接器上,修改如下配置:

原来为:
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
修改为:
    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />

1、将默认8080端口修改为80端口,访问时就不需要加8080端口了,因为HTTP协议默认走的是80端口

2、将8443端口修改为443端口,意思是来自80端口的请求都跳转至443端口

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 快速解决Tomcat重新配置后启动慢的问题

    快速解决Tomcat重新配置后启动慢的问题

    这篇文章主要介绍了解决Tomcat重新配置后启动慢的问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 在无界面centos7上部署jdk和tomcat的教程

    在无界面centos7上部署jdk和tomcat的教程

    这篇文章主要介绍了在无界面centos7上部署jdk和tomcat 的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • ELK收集Tomcat日志的实现

    ELK收集Tomcat日志的实现

    本文主要介绍了ELK收集Tomcat日志的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 详解springboot-修改内置tomcat版本

    详解springboot-修改内置tomcat版本

    这篇文章主要介绍了springboot-修改内置tomcat版本的相关资料,希望通过本文大家能掌握这样的方法,需要的朋友可以参考下
    2017-08-08
  • startup.bat启动Tomcat闪退问题原因及解决

    startup.bat启动Tomcat闪退问题原因及解决

    本文主要介绍了startup.bat启动Tomcat闪退问题原因及解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Tomcat内存泄漏检测和预防策略

    Tomcat内存泄漏检测和预防策略

    内存泄漏是Java应用程序中常见的问题,尤其是在使用如Tomcat这样的应用服务器时,检测和预防内存泄漏需要结合代码审查、工具监控和良好的编程习惯,以下是一些详细的步骤和示例代码,需要的朋友可以参考下
    2024-11-11
  • tomcat如何修改默认访问项目名称和项目发布路径

    tomcat如何修改默认访问项目名称和项目发布路径

    这篇文章主要介绍了tomcat如何修改默认访问项目名称和项目发布路径问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 如何解决Tomcat启动后中文乱码问题

    如何解决Tomcat启动后中文乱码问题

    这篇文章主要介绍了如何解决Tomcat启动后中文乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 基于Tomcat安全配置与性能优化详解

    基于Tomcat安全配置与性能优化详解

    下面小编就为大家分享一篇基于Tomcat安全配置与性能优化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • tomcat9 下载安装和配置+整合到eclipse的教程详解

    tomcat9 下载安装和配置+整合到eclipse的教程详解

    这篇文章主要介绍了tomcat9 下载安装和配置+整合到eclipse,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论