让tomcat支持https访问

本文详细介绍了如何配置Apache Tomcat支持HTTPS访问。包括生成自签名证书、修改Tomcat配置文件以启用HTTPS服务,以及设置HTTP请求重定向到HTTPS等步骤。

关于http与https的区别,请自行百度.本博客只演示如果让tomcat支持https访问。
注:本次使用的tomcat版本为:apache-tomcat-7.0.57

导出证书

首先在本地配置好jdk的环境变量,打开命令行工具,执行如下代码:

keytool -genkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA -validity 365 -alias www.zyz.com -keystore d:/zyz.keystore
参数说明
keyalg  : key的加密算法 RSA
keysize : key的长度
sigalg :签名算法 MD5withRSA 
validity :有效期
alias :域名
keystore :证书的保存路径

修改tomcat配置

打开tomcat –>conf–>server.xml 文件,修改如下两处

    <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" 
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
                keystoreFile="d:/zyz.keystore"
                keystorePass="zyz123"

               />

这里写图片描述

在79行左右位置,打开79-86行对https 协议的注释,添加证书的位置及密码,并且将端口改为https默认的443.

设置http路由

做完上述两步后,可以使用https访问自己的工程,发现工程还是可以用http协议进行访问。接着修改…..

继续修改tomcat的server.xml配置文件,在http配置中做如下配置:

<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443"/>
将tomcat的默认端口8080 改为80
redirectPort="443" :表示当使用http协议访问80端口时,会路由到443端口 

修改web工程的web.xml 文件,加入如下代码,设置整站使用ssl协议:

  <security-constraint>
    <display-name>Test Auth</display-name>
    <web-resource-collection>
      <web-resource-name>Protected Area</web-resource-name>
      <url-pattern>/*</url-pattern> <!-- 整站SSL -->
      <http-method>DELETE</http-method>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
      <http-method>PUT</http-method>
    </web-resource-collection>
    <user-data-constraint>
      <description>SSL required</description>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
  </security-constraint>

大功告成,完成如上配置后,我们便可以启动tomcat,进行网址访问。
在地址栏输入localhost/student/login.jsp后,tomcat自动路由到https端口。

这里写图片描述

由于我们的证书没有经过认证,所以,会出现如下问题。点击高级–>继续访问

这里写图片描述

最后,我们的https 访问的界面出现了!!!
这里写图片描述

参考文献

《大型分布式网站架构设计与实践》
网络博客

在 IntelliJ IDEA 中配置 Tomcat 并启用 HTTPS 访问需要进行一系列操作,包括生成 SSL 证书、配置 Tomcat 的 `server.xml` 文件,并确保 IntelliJ IDEA 正确识别这些更改。以下是详细步骤: ### ### 配置 HTTPS 的前置条件 1. **生成 SSL 证书** 使用 Java 自带的 `keytool` 工具生成自签名证书,用于本地测试环境。打开终端或命令行工具,执行以下命令: ```bash keytool -genkeypair -alias tomcat -keyalg RSA -keystore tomcat.keystore -storepass changeit -keypass changeit -validity 3650 ``` 上述命令将生成一个名为 `tomcat.keystore` 的密钥库文件,有效期为 10 年,密码为 `changeit`(可自行修改)。 2. **将证书放置于合适路径** 将生成的 `tomcat.keystore` 文件复制到 Tomcat 的 `conf` 目录下,便于后续配置使用[^3]。 ### ### 修改 Tomcat 的 server.xml 配置 1. 打开 Tomcat 安装目录下的 `conf/server.xml` 文件。 2. 找到并取消注释 HTTPS 连接器部分,或者手动添加如下配置: ```xml <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/tomcat.keystore" type="RSA" keystorePass="changeit" keyPass="changeit"/> </SSLHostConfig> </Connector> ``` 上述配置启用了 HTTPS 协议,并指定了使用的密钥库和密码[^2]。 ### ### 在 IntelliJ IDEA 中配置 Tomcat 启动参数 1. 打开 IntelliJ IDEA,进入 `Run` → `Edit Configurations...`。 2. 确保已经配置了 Tomcat Server 实例,若未配置,请点击 `+` 号,选择 `Tomcat Server` → `Local`。 3. 在 `Server` 标签页中,设置正确的 Tomcat 安装目录。 4. 切换到 `VM options` 区域,添加以下 JVM 参数以支持 HTTPS: ``` -Djavax.net.ssl.keyStore=C:\path\to\tomcat\conf\tomcat.keystore -Djavax.net.ssl.keyStorePassword=changeit ``` 注意:请将 `C:\path\to\tomcat` 替换为实际的 Tomcat 安装路径[^1]。 5. 在 `Browser` 设置中选择默认浏览器,以便启动后自动打开页面。 ### ### 检查端口占用情况 如果 HTTPS 默认端口 `8443` 被占用,可以通过以下方式检查并更换端口: 1. 打开命令行,输入以下命令查看端口占用情况: ```bash netstat -ano | findstr :8443 ``` 2. 如果端口被占用,可以在 `server.xml` 中修改 HTTPS 的 `port` 属性为其他值,例如 `8444`,然后重新启动服务[^4]。 ### ### 测试 HTTPS 访问 1. 在 IntelliJ IDEA 中点击运行按钮启动 Tomcat。 2. 打开浏览器,访问 `https://localhost:8443/`。 3. 因为是自签名证书,浏览器可能会提示不安全警告,选择继续访问即可。 通过上述步骤,成功在 IntelliJ IDEA 中配置并启用了 TomcatHTTPS 访问功能。这为本地开发提供了更接近生产环境的安全测试条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值