12-HTTPS在Tomcat配置

241 阅读1分钟

一、证书生成

11-HTTPS在SpringBoot中的配置

二、Tomcat 单向认证

Tomcat 8.5/9

  1. 在Tomcat安装目录的server.xml文件中定位到以下部分内容。
 <!--
 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="150" SSLEnabled="true">
     <SSLHostConfig>
         <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                      type="RSA" />
     </SSLHostConfig>
 </Connector>
 -->
  1. 删除 <!- -- -> 注释符后,参考更多信息参数说明二,修改certificateKeystoreFile参数值。然后新增certificateKeystorePassword参数值,最终配置内容类似如下。
   <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
              maxThreads="150" SSLEnabled="true">
       <SSLHostConfig>
           <Certificate certificateKeystoreFile="D:\https\keytools\server.jks"
     certificateKeystorePassword="huawei"
                        type="RSA" />
       </SSLHostConfig>
   </Connector>
  1. 在Tomcat安装目录的server.xml文件中定位到以下部分内容。
 <Host name="localhost"  appBase="webapps"
       unpackWARs="true" autoDeploy="true">
  1. 将Host Name变量设置为证书绑定的域名,下面以www.domain.com为例。
 <Host name="www.domain.com"  appBase="webapps"
     unpackWARs="true" autoDeploy="true">
  1. 保存server.xml配置文件。

image.png

三、Tomcat 双向认证

打开Tomcat根目录下的/conf/server.xml,找到Connector port="8443"配置段,修改为如下:

 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                maxThreads="150" SSLEnabled="true">
         <SSLHostConfig>
             <Certificate certificateKeystoreFile="D:\https\single_ssl\server.p12" certificateKeystorePassword="huawei"
             truststoreFile="D:\https\single_ssl\root.p12" truststorePass="huawei"
             clientAuth="true" type="RSA" />
         </SSLHostConfig>
     </Connector>

clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证 keystoreFile:服务器证书文件路径 keystorePass:服务器证书密码 truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书 truststorePass:根证书密码 测试验证访问:

 # --cert指定客户端公钥证书的路径
 # --key指定客户端私钥文件的路径
 # -k不校验证书的合法性,因为我们用的是自签名证书,所以需要加这个参数 (控制台不校验tomcat的证书)
 # 可以使用 -v 来观察具体的 SSL 握手过程
 curl --cert ./client.crt --key ./client.key https://localhost:8443 -k -v

image.png

更多内容关注微信公众号 ”前后端技术精选“,或者语雀,里面有更多知识:www.yuque.com/riverzmm/uu… 《安全》