前言
前一阵用子域名解析了一个服务,发现开启https后,浏览器报错证书无效,于是我专门为子域名申请了证书,我的需求是通过不同的域名访问同一个tomcat,经过一番折腾后,终于实现了这个需求。
本文就跟这个分享下我的解决方案,欢迎各位感兴趣的开发者阅读本文。
实现过程
我的tomcat版本是9.0,其他版本的应该也是这样配置。
打开conf/server.xml
文件
配置证书信息
找到<Connector port="443"
标签,在标签内部添加下述代码:
<!--开启多域名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"
标签,在标签内部添加下述代码:
<!--域名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 "%r" %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 "%r" %s %b"/>
</Host>
实现效果
image.png
image.png
写在最后
至此,文章就分享完毕了。
我是神奇的程序员,一位前端开发工程师。