前言
前一阵用子域名解析了一个服务,发现开启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
写在最后
至此,文章就分享完毕了。
我是神奇的程序员,一位前端开发工程师。