java环境配置https访问(本地测试)

时间:2021-04-17 13:07:20
1、进入到jdk下的bin目录: cd %JAVA_HOME%/bin 
2:再运行: keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\test\tomcat.keystore -validity 36500 (D盘要先建好test文件夹,否则会报不存在。参数简要说明:“D:\home\tomcat.keystore”含义是将证书文件的保存路径,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天 “tomcat”为自定义证书名称)。
java环境配置https访问(本地测试)
运行后会提示输入口令
密码任意,此处以123456为例,要记住这个密码,之后在进行server.xml配置时需要使用。


3、输入名字、组织单位、组织、市、省、国家等信息
注意事项:
A、Enter keystore password:
此处需要输入大于6个字符的字符串
B、您的名字和姓氏是什么
这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:xiaorun.com 或者 192.168.18.111],
就是你将来要在浏览器中输入的访问地址,若是本地的话输入localhost即可。
C、
其余信息可随便输入也可更具实际情况输入也可以不填写直接回车,
java环境配置https访问(本地测试)
出现上面的内容时对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
D、
java环境配置https访问(本地测试)

完成上述输入后,直接回车,则可以在你在第二步中定义的位置找到生成的tomcat.keystore文件


4、进入d盘test文件夹下可以看到生成的tomcat.keystore,可以将该文件拷到tomcat目录下也可不拷,只有在第5步的配置中指定该目录即可。


5、进入tomcat文件夹
找到conf目录下的sever.xml并进行编辑
sever.xml中端口8443原来是注释掉的、
java环境配置https访问(本地测试)
        把上面的注释内容换成下面这些内容
[html]  view plain  copy
  1. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  
  2.      maxThreads="150" scheme="https" secure="true"  
  3.      clientAuth="false" keystoreFile="D:/AppServer/Tomcat/apache-tomcat-6.0.32/conf/tomcat.keystore"  
  4.      keystorePass="123456" sslProtocol="TLS" />  


注:
方框中的keystore的密码,就是刚才我们设置的“123456”.


编辑完成后关闭并保存sever.xml

6、应用程序HTTP自动跳转到HTTPS
在应用程序中web.xml中加入:(这个我没有实验过,网上写的是可以这样配置的,大家可以试试)
[html]  view plain  copy
  1.        <security-constraint>   
  2.        <web-resource-collection >   
  3.               <web-resource-name >SSL</web-resource-name>   
  4.               <url-pattern>/*</url-pattern>   
  5.        </web-resource-collection>  
  6.                                
  7.        <user-data-constraint>   
  8.               <transport-guarantee>CONFIDENTIAL</transport-guarantee>   
  9.        </user-data-constraint>   
  10. </security-constraint>  


注:此项是选填项,若跳过该步,则http,https均可使用

7、Tomcat启动成功后,使用https://localhost:8443 访问页面,页面成功打开即tomcat下的https配置成功。只有访问8443端口号是带https认证的,原来的端口号不受影响若用 https://localhost:8080访问8080端口是访问不到的(http://localhost:8082/spring4/index.jsp这个不会认证,https://localhost:8443/spring4/index.jsp这个会认证,而https://localhost:8082/spring4/index.jsp访问不到)

有什么不对的希望大家指正