本地测试javaWeb项目http转https

本文详细介绍如何通过JDK和Tomcat配置HTTPS,包括生成密钥文件、导出及导入证书,以及配置Tomcat实现自动从HTTP重定向到HTTPS的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过jdk和tomcat配置https,单方验证以及自动将http请求转成https

注:该记录配置的tomcat是6.0和jdk6.0.24 使用jdk中自带的keytool生成数字证书。

keytool的命令说明

通过win+R输入cmd,然后输入以下命令: keytool -genkey -help,就会出现如下:
      D:>keytool -genkey -help
      keytool -genkeypair [OPTION]…
      命令说明:
        -alias 要处理的条目的别名
        -keyalg 密钥算法名称
        -keysize 密钥位大小
        -sigalg 签名算法名称
        -destalias 目标别名
        -dname 唯一判别名
        -startdate 证书有效期开始日期/时间
        -ext X.509 扩展
        -validity 有效天数
        -keypass 密钥口令
        -keystore 密钥库名称
        -storepass 密钥库口令
        -storetype 密钥库类型
        -providername 提供方名称
        -providerclass 提供方类名
        -providerarg 提供方参数
        -providerpath 提供方类路径
        -v 详细输出
        -protected 通过受保护的机制的口令

第一步:生成密钥文件

1、要安装jdk并且配置环境变量。

2、以管理员的身份进入 cmd,在cmd里进入jdk的bin路径下,然后输入 以下命令:keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keypass 123456 -validity 36600 -keystore E:\key\m.jks -storepass 123456
输入上面命令就会出现如下信息:

您的名字与姓氏是什么?
      [Unknown]: 这里输入你的ip,若是服务器的话,就输入域名,后面的信息就随便输入即可
      您的组织单位名称是什么?
      [Unknown]:
      您的组织名称是什么?
      [Unknown]:
      您所在的城市或区域名称是什么?
      [Unknown]:
      您所在的省/市/自治区名称是什么?
      [Unknown]:
      该单位的双字母国家/地区代码是什么?
      [Unknown]:
      CN=172.172.172.172, OU=x, O=x, L=x, ST=x, C=x是否正确?
      [否]: y 这里输入值是让你确认你上面的信息是否正确,若不正确,除了y的其他都可以。输入之后就会重复上面的操作。
在这里插入图片描述
   执行完成之后就可以在e盘下面的key文件夹下生成一个密钥m.jks

第二步:导出证书

命令:keytool -export -alias tomcat -keystore E:\key\m.jks -file E:\key\m.crt -storepass 123456
执行后会出现如下提示:存储在文件 <E:\key\m.crt> 中的证书

第三步:客户端导入证书

命令: keytool -import -keystore %JAVA_HOME%\jre\lib\security\cacerts -file E:\key\m.crt -alias tomocat

执行后

输入密钥库口令: 这里输入的口令必须是changeit; 输入完成后就会出现如下信息,若%JAVA_HOME%\jre\lib\security\目录下没有cacerts,还要再输入一次changeit;
    所有者: CN=172.172.172.172, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
    发布者: CN=172.172.172.172, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown  
    序列号: 402163bd
    有效期开始日期: Fri Feb 24 16:53:06 CST 2017, 截止日期: Tue May 11 16:53:06 CST 2117
    证书指纹:
    MD5: A8:ED:C3:13:24:F5:D9:7E:E1:AF:B0:BB:B4:8C:EA:EA
    SHA1: 6B:69:79:1A:B0:AD:46:E2:98:74:FF:79:22:E6:A4:7B:7F:4E:9D:19
    SHA256: B3:23:F5:DD:6E:42:A4:14:CF:6A:9D:83:43:7A:9E:FA:B1:69:24:E5:15:DD:A5:97:BB:94:A5:A9:29:8D:2D:BE
    签名算法名称: SHA256withRSA
    版本: 3

是否信任此证书? [否]: y 输入y即可
    证书已添加到密钥库中

第四步:配置tomcat文件

1、找到tomcat目录下的conf文件下的server.xml;

找到
<Connector port=“8080” protocol=“HTTP/1.1”
connectionTimeout=“20000”
redirectPort=“8443” />

在这个后面加入

<Connector port=“8443” protocol=“org.apache.coyote.http11.Http11NioProtocol”
//如果要修改端口号请注意一起修改其他相同的端口号。
maxThreads=“1500”
SSLEnabled=“true”
scheme=“https”
secure=“true”
clientAuth=“false”
sslProtocol=“TLS”
keystoreFile=“E:\key\m.jks” 这里是你生成密钥的路径
keystorePass=“123456” 这里是你生成密钥时的密码
keyAlias=“tomcat” 这里是你设置的别名(记得保持一致)
keystoreType=“JKS” />

2、到这里就配置完了,然后启动tomcat,输入https://您的名字与姓氏:8443/就会出现如下界面
在这里插入图片描述
3、点击继续浏览此网站就会出现tomcat首页或者项目首页
在这里插入图片描述

第五步:自动将http请求转成https

1、在你apache中的/conf/web.xml或者项目中 的web.xml,在该文件前面面加上这样一段:
<login-config>

<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>

2、在浏览器里以http访问tomcat或者项目进会自动跳转到https请求地址。

扩展内容

如果项目中同时使用http和https访问,
可以通过业务判断,来重定向到https地址( response.sendRedirect(“https://localhost:8443/”) ),
因为不管是http还是https都是同一个tomcat的配置,所以即使是重定向,只要登录成功,登录信息会在同一个 浏览器上缓存下来(个人理解),直接重定向到https地址也进入登录成功页面。

本人测试无法转向(forward)到https地址。原因如下:

本人测试无法转向到htt

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值