Tomcat使用Https协议

http://blog.csdn.net/a35038438/article/details/50598429


在配置Https协议之前你需要知道:

1.ssl

2.keystore

3.<security-constraint>认证类型



目录:

1.生成安全证书
2.配置Tomcat

3.测试页面

4.https与http协议转换

5.页面强制使用https协议



1.生成安全证书(cmd):

[plain]  view plain  copy
  1. 创建证书命令:keytool -genkeypair -alias "tomcat" -keyalg "RSA" -validity 90 -keystore "D:\tomcat.keystore"  

"D:\tomcat.keystore"  生成的keystore位置和名称

-keyalg "RSA"  加密算法

-validity 90 有效天数


PS:值得注意的是"输入keystore密码"在你输入时,并不会显示你的密码

2.配置Tomcat(conf文件夹中的server.xml):

 
[html]  view plain  copy
  1. 添加此段代码:<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"  
  2.                 maxThreads="150" SSLEnabled="true" scheme="https" secure="true"  
  3.                 clientAuth="false" sslProtocol="TLS"  
  4.                 keystoreFile="D:/tomcat.keystore"   
  5.           keystorePass="tomcat" />  
 

 
3.此时在浏览器地址栏输入https://localhost:8443进行访问进入到如下页面则配置成功: 
 

4.https与http协议转换(有些页面需要使用https访问,有些页面使用http访问)

[html]  view plain  copy
  1. 找到此段代码:<Connector port="8080" protocol="HTTP/1.1"  
  2.                connectionTimeout="20000"  
  3.                redirectPort="8009" />   
[html]  view plain  copy
  1. 修改为:      <Connector port="80" protocol="HTTP/1.1"  
  2.                connectionTimeout="20000"  
  3.                redirectPort="443" />  

[html]  view plain  copy
  1. 找到此段代码:<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"  
  2.                 maxThreads="150" SSLEnabled="true" scheme="https" secure="true"  
  3.                 clientAuth="false" sslProtocol="TLS"  
  4.                 keystoreFile="D:/tomcat.keystore"   
  5.           keystorePass="tomcat" />  

 
[html]  view plain  copy
  1. 修改为:     <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"  
  2.                 maxThreads="150" SSLEnabled="true" scheme="https" secure="true"  
  3.                 clientAuth="false" sslProtocol="TLS"  
  4.                 keystoreFile="D:/tomcat.keystore"   
  5.           keystorePass="tomcat" />  
 
 
PS:80和443是http和https协议的默认端口号,这样设置,是为了在浏览器地址栏不需要输入端口号就能访问页面,需要访问https协议页面,就直接在地址栏输入https://localhost。 
 

5.页面强制使用https协议(例如:登录页面必须使用https协议)

[html]  view plain  copy
  1. 在项目资源中的web.xml或tomcat/conf/web.xml文件中的</welcome-file-list>后加上:  
  2. <web-resource-collection >  
  3.     <web-resource-name >SSL</web-resource-name>  
  4.     <url-pattern>/*</url-pattern><!-- 这里表示所有页面都必须使用https协议 -->  
  5. </web-resource-collection>  
  6.     <user-data-constraint>   
  7.         <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
  8.     </user-data-constraint>   
  9. </security-constraint>  

 
配置完成后,使用http(不输入端口号)协议方式进入页面也会自动转换为https协议进行访问。
                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值