Tomcat配置HTTPS访问

协议

2020年02月26日 18:14:431126

笔者服务器环境

操  作 系  统 :Windows Server 2012

Tomcat版本:8.5

前言

本文将介绍,如何在Windows版本的Tomcat服务器配置SSL证书实现HTTPS访问,在这之前,假设你已经获得了Tomcat所需要的SSL证书和密码(获取SSL证书传送门)  

下载SSL证书

请选择Tomcat版本的SSL证书下载,下载完成之后,你会得到一个压缩文件,内部包含你的SSL证书(.pfx文件或者.jks文件)和证书密码(.txt文件)。  

解压你下载的压缩包,将.pfx文件移动至Tomcat安装目录/conf文件夹内(和server.xml同级)

配置SSL证书

找到server.xml文件,并用编辑器打开。由于HTTPS默认访问的端口是443端口,所以,首先我们要让80端口重定向的443端口。

假设你是第一次安装Tomcat,请找到:

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

将之改成

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

如果你需要将Tomcat与其他HTTP(S)服务器集成时,你还需要找到:

<Connector port="8009" protocol="AJP/1.3" redirectPort="844" />

将之改成

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

最后,请找到:

<!-- <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost.jks"
                         type="RSA" />
        </SSLHostConfig>
</Connector> -->

将之改成

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/你的证书文件名.pfx" certificateKeystorePassword="你的证书密码"
                         type="RSA" />
        </SSLHostConfig>
</Connector>

注:中文字部分请按实际情况配置,certificateKeystoreFile对应你的证书文件地址,certificateKeystorePassword对应你的证书密码,即.txt文件的内容。  

可选:强制HTTPS访问

本方法将实现HTTP访问自动跳转至HTTPS访问。

找到web.xml文件,并用编辑器打开。

在内容末尾找到:

<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>

即可实现HTTP自动跳转至HTTPS。

赞 11
收藏
分享

本作品系 原创,作者:x先生

原文链接:https://shiniest.cn/blog/article/62

文本版权:文本版权归作者所有

转载需著名并注明出处(禁止商业使用)

评论和回复

0/500
    没有更多啦~
    怎么一条数据都没有呢?