在http下实现https的安全登录
来源:互联网 发布:设计软件下载 编辑:程序博客网 时间:2024/06/03 16:54
准备工作:
1、 第一步:为服务器生成证书
A、打开cmd 输入 cd %JAVA_HOME%/bin
B、使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“E:\rfocus.keystore”,使用如下命令生成:
keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore
安装提示输入用户名,组织,地区,国家等,即可正确生成,该步为服务器生成了证书。单向认证的话,到这一步即可。但是这样产生的证书,因为没有经过专门的CA认证,浏览器访问时,会弹出警告。
2、 配置tomcat的文件配置service.xml和web.xml
Service.xml:
<Connector port="80"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443"/>
<Connector port="443"protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
maxThreads="150"scheme="https" secure="true"
clientAuth="false"sslProtocol="TLS"
keystoreFile="E:/my.keystore"keystorePass="000000"/>
<Connector port="8009"protocol="AJP/1.3" redirectPort="443" />
Web.xml:
在文件末尾添加以下内容:
<security-constraint>
<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>
实现方案:
在http协议下的登录页面提交https表单请求登录,然后在后端处理完请求后,再跳转至http页面,在跳转页面进行判断是否登录成功。如果登录失败,则把跳转至登录页面,并返回错误消息;如果登录成功,则跳转至成功页面。
1、 登录页面,把form表单的请求设置为约定的https请求,在后端对该请求进行处理。
2、 处理完成之后,返回给页面redirect.jsp, 在redirect.jsp中对登录返回消息进行处理;
3、 如果登录成功,则设置cookie内容,把需要保存在cookie中的信息进行保存,并把当前页面herf到约定的http首页上,进行加载页面。
4、 如果登录失败,则跳转到约定的http登录页面上,并返回错误代码,在登录页面根据错误代码,进行相应的错误消息提示。
注意问题:
1、 需要约定http和https的端口,否则在页面跳转时,不能得到具体的跳转路径。建议为默认的端口号,即http:80,https:443
2、 不能使用ajax请求登录,因为ajax不能跨协议。
3、Session 和cookie的信息保存 和有效性:
理论分析session和cookie都是相同和有效的。
经测试,与理论相同。
不用担心因为协议的不同而导致session或者cookie失效。
4、测试环境的端口配置
由于测试环境经常更换http的端口,这会导致夸协议请求登录会有问题。
- 在http下实现https的安全登录
- Https比http安全在哪里
- 在tomcat中实现https安全连接的方法
- 在tomcat中实现https安全连接的方法
- 在tomcat中实现https安全连接的方法
- 在tomcat中实现https安全连接的方法
- 在tomcat中实现https安全连接的方法
- 在tomcat中实现https安全连接的方法
- 在tomcat中实现https安全连接的方法
- 在tomcat中实现https安全连接的方法
- 在tomcat中实现https安全连接的方法
- 在tomcat中实现https安全验证
- 在tomcat中实现https安全验证
- 在Tomcat中实现https安全验证
- 安全http---https
- 如何让IE6在从https到http的跳转中不出安全提示
- android json实现网络请求 和普通的http请求 还有https请求安全认证
- HTTPS和HTTP有什么区别,到底安全在哪里?
- 射击类游戏的制作思路
- Revit文字生成
- 订单系统中并发问题和锁机制的探讨订单系统中并发问题和锁机制的探讨
- 黑马程序员—————流程控制语句——选择结构
- Ajax 请求session过期的统一处理
- 在http下实现https的安全登录
- SQL 行内拼凑字符串 小记
- Cucumber-java入门基础篇
- switch与if..else区别
- Writing a boot loader in Assembly and C
- JavaScript中eval 是做什么用的?
- ffmpeg av_register_all 异常
- Golang学习笔记//配置学习环境
- 在Ubuntu 14.04上装teamviewer