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

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

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

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

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

<!-- Define a SSL HTTP/1.1 Connector on port 8443 --> 

<Connector protocol="org.apache.coyote.http11.Http11Protocol"   

                    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定义的地方,一般如下:

    <Connector port="80" maxHttpHeaderSize="8192"

                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,如下:

<Connector   

  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,如下:

    <Connector port="8009"

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

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

4、强制https访问

  在tomcat\conf\web.xml中的</welcome-file-list>后面加上这样一段:

<login-config> 

    <!-- Authorization setting for SSL --> 

    <auth-method>CLIENT-CERT</auth-method> 

    <realm-name>Client Cert Users-only Area</realm-name> 

</login-config> 

<security-constraint> 

    <!-- Authorization setting for SSL --> 

    <web-resource-collection > 

        <web-resource-name >SSL</web-resource-name> 

        <url-pattern>/*</url-pattern> 

    </web-resource-collection> 

    <user-data-constraint> 

        <transport-guarantee>CONFIDENTIAL</transport-guarantee> 

    </user-data-constraint> 

</security-constraint>

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容