最近项目中需要用户在登录时使用https方式。在网上搜索了一些资料,汇总如下:
支持https登录,需要生成证书并配置tomcat。
1,生成证书文件:
执行"%java_home%/bin/keytool" -genkey -keystore keystore -alias myself命令生成keystore证书文件;
生成证书文件时会提示输入密码,此密码需要和第2步的keystorePass保持一致。
2,配置tomcat:
将"%java_home%/bin/keystore"文件拷贝是%tomcat_home%/conf下;
打开%tomcat_home%/conf/server.xml文件,找到以下内容:
-----------------------------------------------------------------------
------------------------------------------------------------------------
修改为以下内容(注意ssl端口默认为8443,如有需要请更改port参数为实际端口号;keystorePass为第一步设置的密码):
------------------------------------------------------------------------
------------------------------------------------------------------------
3,配置web.xml
在web.xml文件最后加入以下内容:
-----------------------------------------------------------------------
CLIENT-CERTClient Cert Users-only AreaSSL/login.actionCONFIDENTIAL
-----------------------------------------------------------------------
注意:上面的配置会遇到,跳转到https的登录页面,登录成功后,session丢失。
通过在登录成功后,写入sessionid到cookie中可以解决此问题。
链接:http://name327.iteye.com/blog/1591796