Tomcat配置多SSL证书

2022-04-10 09:43:40 浏览数 (1)

前言

前一阵用子域名解析了一个服务,发现开启https后,浏览器报错证书无效,于是我专门为子域名申请了证书,我的需求是通过不同的域名访问同一个tomcat,经过一番折腾后,终于实现了这个需求。

本文就跟这个分享下我的解决方案,欢迎各位感兴趣的开发者阅读本文。

实现过程

我的tomcat版本是9.0,其他版本的应该也是这样配置。

打开conf/server.xml文件

配置证书信息

找到<Connector port="443"标签,在标签内部添加下述代码:

代码语言:javascript复制
            <!--开启多域名ssl证书-->
            <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />

            <!--域名1证书-->
            <SSLHostConfig hostName="www.kaisir.cn">
                <Certificate certificateKeystoreFile="证书1文件.jks"
                             certificateKeystorePassword="证书密码"
                             type="RSA"/>
            </SSLHostConfig>
            <!--域名2证书-->
            <SSLHostConfig hostName="home.kaisir.cn">
                <Certificate certificateKeystoreFile="证书2文件.jks"
                             certificateKeystorePassword="证书密码"
                             type="RSA"/>
            </SSLHostConfig>

配置路径访问

找到<Engine name="Catalina"标签,在标签内部添加下述代码:

代码语言:javascript复制
            <!--域名1访问-->
            <Host name="www.kaisir.cn" appBase="webapps"
                  unpackWARs="true" autoDeploy="true">
                  <!--配置路径访问-->
                <Context path="" docBase="真实文件地址"></Context>
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                       prefix="localhost_access_log" suffix=".txt"
                       pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
            </Host>
            <!--域名2访问-->
            <Host name="home.kaisir.cn" appBase="webapps"
                  unpackWARs="true" autoDeploy="true">
                  <!--配置路径访问-->
                <Context path="" docBase="真实文件地址"></Context>
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                       prefix="localhost_access_log" suffix=".txt"
                       pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
            </Host>

实现效果

image.png

image.png

写在最后

至此,文章就分享完毕了。

我是神奇的程序员,一位前端开发工程师。

0 人点赞