tomcat配置https协议、http协议自动跳转到https

在命令提示符窗口,进入Tomcat目录,执行以下命令:

keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600

通过以上步骤生成server.keystore证书文件

将servlet.xml一下的的注释打开

 

                    port="8443" maxHttpHeaderSize="8192" 

          maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 

          enableLookups="false" disableUploadTimeout="true" 

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

          clientAuth="false" sslProtocol="TLS"                   

          keystoreFile="server.keystore"   

          keystorePass="changeit"/> 

到这一步访问https://ip:8443/

一般Tomcat默认的SSL端口号是8443,但是对于SSL标准端口号是443,这样在访问网页的时候,直接使用https而不需要输入端口号就可以访问,如https://ip/

想要修改端口号,需要修改Tomcat的server.xml文件:

1.non-SSL HTTP/1.1 Connector定义的地方,一般如下:

   

                maxThreads="500" minSpareThreads="25" maxSpareThreads="75"

                enableLookups="false" redirectPort="443" acceptCount="100"

                connectionTimeout="20000" disableUploadTimeout="true" />

将其中的redirectPort端口号改为:443

2.SSL HTTP/1.1 Connector定义的地方,修改端口号为:443,如下:

  port="443" maxHttpHeaderSize="8192"

  maxThreads="150" minSpareThreads="25"

  maxSpareThreads="75"

  enableLookups="false"

  disableUploadTimeout="true"

  acceptCount="100" scheme="https"

  secure="true"

  clientAuth="false" sslProtocol="TLS"

  keystoreFile="conf/tomcat.keystore"

  keystorePass="123456" />

3.AJP 1.3 Connector定义的地方,修改redirectPort为443,如下:

   

                enableLookups="false" redirectPort="443" protocol="AJP/1.3" />

重新启动Tomcat就可以了。到这一步可以形成访问方式 https://ip/

4、强制https访问

  在tomcat\conf\web.xml中的后面加上这样一段:

 

     

    CLIENT-CERT 

    Client Cert Users-only Area 

 

 

     

     

        SSL 

        /* 

     

     

        CONFIDENTIAL 

     

注意:(如果对方使用的机器端口被占用)

需要切换端口来转换数据:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

你可能感兴趣的:(tomcat配置https协议、http协议自动跳转到https)