tomcat配置http转换https

时间:2022-08-21 17:48:38

配置tomcat实现http转向https双向认证

任务需求:原有的请求为非安全的http协议,通过tomcat相关配置实现http跳转为更为安全的https进行访问。

 

工具:tomcat,控制台

 

步骤

 

1.服务器生成证书

通过控制台跳转到tomcat安装目录下,运行以下命令:

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\key\tomcat.keystore -validity  36500
tomcat配置http转换https

alias:证书别名;

Keystore:证书存储位置;

Tomcat.keystore:生成的文件名字;

Validity:证书有限期。

回车运行后需要填写以下问题:

A、输入密钥库口令:自己设置;

B、“您的名字语姓氏是什么?”:tomcat部署主机的域名,可以设置为127.0.0.1或其他。

后续几个问题可以不填,直接回车到系统询问填写是否正确?输入y,生成tomcat.keystore文件。

 

2.客户端生成证书

生成格式为PKCS12的浏览器证书,在控制台输入以下命令:

keytool  -genkey-v –alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\key\mykey.p12
tomcat配置http转换https

可以在相应位置找到mykey.p12文件,直接双击运行此文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。

 

3.双向认证

由于双向认证是通过SSL,服务器语客户端必须互相信任证书,首先将客户端证书导出为CER文件,在控制台输入以下命令:

keytool-export -alias mykey -keystore D:\key\mykey.p12 -storetype PKCS12 -storepass password -rfc -file D:\key\mykey.cer
tomcat配置http转换https

password为设置的密码,回车即可在相应位置可以生成mykey.cer文件,将该文件导入到服务器的证书库,在控制台输入以下命令:

keytool -import -v -file D:\home\mykey.cer -keystore D:\home\tomcat.keystore
keytool-export -alias client(客户端证书别名) -keystore D:\key\client.p12 -storetype PKCS12 -storepass client(你的客户端keystore密码) -rfc-file D:\key\clientforserver.ce
tomcat配置http转换https

再进行客户端对服务器证书的验证,也将服务器证书导出为CER文件,在控制台输入以下命令:

keytool -keystore D:\home\tomcat.keystore -export -alias tomcat -file D:\home\tomcat.certomcat配置http转换https

在相应位置也可以生成tomcat.cer文件。安装两个生成的cer文件,按照提示安装证书文件,将证书填入到“受信任的根证书颁发机构”。

 

4.配置tomcat

修改server.xml文件,暂时不需要修改web.xml文件(经测试)

打开tomcat根目录下的/conf/server.xml文件,添加如下字段:

<Connector  keystoreFile="D:/key/tomcat.keystore(生成的keystore文件)"

SSLEnabled="true" clientAuth="true"

keystorePass="密码" maxThreads="150" port="8443"

protocol="org.apache.coyote.http11.Http11NioProtocol"

scheme="https" secure="true" sslProtocol="TLS"

truststoreFile="D:/key/tomcat.keystore(生成的keystore文件)" truststorePass="设置的密码"/>

 

5.测试

tomcat7tomcat8中测试,需要设置myeclipse(2015)中的server文件,防止每次部署项目自动恢复server.xml文件,直接修改下图中的文件即可。

tomcat配置http转换https

测试结果如下图:

tomcat配置http转换https 

 

在tomcat6中,暂时没有发现myeclipse(8)自动恢复文件的问题。

 

 参考:http://blog.csdn.net/zhangyong125/article/details/49944683#comments