Fork me on GitHub

Tomcat使用Https协议

背景:

在一个项目上线的过程中,采用了阿里云的负载均衡,而不是nginx的负载均衡,所以需要配置tomcat支持https协议

1、生成keystore

1 keytool -genkeypair -alias "tomcat" -keyalg "RSA" -validity 90 -keystore "/root/tomcat.keystore"  

"/root/tomcat.keystore"  生成的keystore位置和名称

-keyalg "RSA"  加密算法

-validity 90 有效天数

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

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="/root/tomcat.keystore"   
5               keystorePass="tomcat" />

keystorePass为生成keystore时输入的密码
启动tomcat就可以以https访问了

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

1 <Connector port="8080" protocol="HTTP/1.1"  
2                connectionTimeout="20000"  
3                redirectPort="8009" />

替换为

<Connector port="80" protocol="HTTP/1.1"  
               connectionTimeout="20000"  
               redirectPort="443" />

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

在项目资源中的web.xml或tomcat/conf/web.xml文件中的</welcome-file-list>后加上:  
<web-resource-collection >  
    <web-resource-name >SSL</web-resource-name>  
    <url-pattern>/*</url-pattern><!-- 这里表示所有页面都必须使用https协议 -->  
</web-resource-collection>  
    <user-data-constraint>   
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
    </user-data-constraint>   
</security-constraint> 

 

posted @ 2017-07-02 00:11  阿森丶  阅读(228)  评论(0编辑  收藏  举报