Tomcat配置https

来源:互联网 发布:js 搜索功能 编辑:程序博客网 时间:2024/05/16 06:04

今天,有个项目做安全扫描,结果出现很多登陆相关的不安全内容。

比如:已解密的登陆请求,使用http动词篡改的认证旁路等等不安全的东西。那么好了,我们要从http变成https,问题就应该不大了。


那么继续,

1、http是需要证书的。一开始就是生成证书。

2、证书生成之后,那么需要给JVM导入证书。

3、现在就开启Tomcat的ssl功能。weblogic也是一样只要配置一下就行。

4、延伸功能,只过滤login,其他的依旧使用http。


一、创建证书&给JVM导入证书

命令:keytool -genkey -alias wsria -keyalg RSA -keystore d:/ sztcHttpsKey

命令:keytool -export -file d:/sztcHttpsKey.crt -alias wsria -keystored:/sztcHttpsKey

命令:keytool -import -keystore D:\tools\jdk1.6.0_12\jre\lib\security\cacerts -file d:/sztcHttpsKey.crt  -alias wsria


三个命令分别得到 sztcHttpsKey、sztcHttpsKey.crt、cacerts。作用是sztcHttpsKey给tomcat使用的ssl秘钥。sztcHttpsKey.crt  ssl证书。cacerts 是java的公钥库,这就是判断你私钥是否正确的东西。


在启用https的时候 ,其实只需要sztcHttpsKey 这个玩意就可以了。这个key的名字可以自定义,只需要在tomcat中指向这个文件就行。


二、启动Tomcat的SSL

在tomcat安装目录下conf/service.xml

中添加一个Connector

 

代码如下

<ConnectorclassName="org.apache.coyote.tomcat5.CoyoteConnector"

                   port="8443"minProcessors="5" maxProcessors="75"

                   enableLookups="true"disableUploadTimeout="true"

                   acceptCount="100"debug="0" scheme="https" secure="true"

                   clientAuth="false"sslProtocol="TLS" keystoreFile="D:/sztcHttpsKey"keystorePass="sztcII" />

 

 

这里是用的示例端口8443。这个时候还是可以使用8080端口访问http。所以我将以前的8080端口删除,然后将上面代码的端口改为8080。这样就只能使用https访问了。





三、衍生需求:只在登陆时使用https。

思路其实挺简单。
1、既然https和http要同时存在,那么一定会有2个不同的端口。
2、拦截login的请求,强制转换成https。
3、其他请求被重定向到http。

0 0