Tomcat部署HTTPS协议

1.生成证书;

keytool -genkeypair -alias "tomcat" -keyalg "RSA" -validity 90 -keystore "D:	omcat.keystore" 

“D: omcat.keystore” 生成的keystore位置和名称
-keyalg “RSA” 加密算法
-validity 90 有效天数

PS:值得注意的是”输入keystore密码”在你输入时,并不会显示你的密码

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

添加下面代码

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"  
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"  
                clientAuth="false" sslProtocol="TLS"  
                keystoreFile="D:/tomcat.keystore"   
          keystorePass="tomcat" />

3.此时在浏览器地址栏输入https://localhost:8443进行访问进入到tomcat默认页面则配置成功:

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

修改

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

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

修改

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"  
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"  
                clientAuth="false" sslProtocol="TLS"  
                keystoreFile="D:/tomcat.keystore"   
          keystorePass="tomcat" />

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"  
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"  
                clientAuth="false" sslProtocol="TLS"  
                keystoreFile="D:/tomcat.keystore"   
          keystorePass="tomcat" />

PS:80和443是http和https协议的默认端口号,这样设置,是为了在浏览器地址栏不需要输入端口号就能访问页面,需要访问https协议页面,就直接在地址栏输入http:127.0.0.1。

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

在项目资源中的web.xml或tomcat/conf/web.xml文件中的</welcome-file-list>后加上:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>SSL</web-resource-name>
        <url-pattern>/login.do</url-pattern>
        <url-pattern>/loginCheck.do</url-pattern>
        <url-pattern>/app/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
   </security-constraint>

配置完成后,使用http(不输入端口号)协议方式进入页面也会自动转换为https协议进行访问。

原文地址:https://www.cnblogs.com/warylee/p/13545528.html