Tomcat多域名多证书多项目配置(解决链接超时/tomcat启动重启)

Tomcat多域名多证书多项目配置

因为项目的需求,需要在一个服务器上的一个tomcat中配置多个域名,每个域名有多个证书并且对应多个项目(我这里是spring的项目,不过都差不多吧)
在网上查到很多资料,但是很绝望,在我这都不是很适用,最后自己兜兜转转解决了在这记录一下。

在使用别人的方法时遇到的问题:
1. tomcat启动闪退
2. tomcat启动后,网站无法访问,链接超时(此时域名可以ping通)

文章主要就是server.xml的配置了,下面是代码


代码

80端口那边的设置我就不放在这了,毕竟遇到这个问题的应该都知道了,以下是Connector 443的配置

<Connector port="443"   protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
        <SSLHostConfig hostName="域名1">
            <Certificate certificateKeystoreFile="域名1的jks文件路径" certificateKeyAlias="该SSL证书的别称,或者直接写域名"
                certificateKeystorePassword="证书密码"
                         type="RSA" />
        </SSLHostConfig>
        <!--以下是我解决这次问题的关键,因为我只需要两个域名,所以指定了其中一个后,别的都可以默认为另一个
        具体的原因很抱歉我也不是不清楚,但最终就是在这个地方,添加了一个默认入口,项目就可以跑了
        如果你有三个或者四个哪怕更多,只需要复制上面的那一段SSLHostConfig就行,但最后记得加上一个默认值
        下面这部分没写hostname,但默认的是localhost,我尝试加上hostName = localhost但失败了= =-->
          <SSLHostConfig> 
            <Certificate certificateKeystoreFile="域名2的jks路径" certificateKeyAlias="域名2"
                certificateKeystorePassword="密码"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

以下是Host的设置

</Host>

<Host name="域名1"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

<Context path="" docBase="域名1的工程路径" debug="0"/>

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <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" />

其实这部分就是把loaclhost的复制一遍,然后修改一下name和docBase,当然可能你的localhost并没有设置Context,那就照我的加上就好了,记住这是加上的,原本的localhost别删了,留着,在我的项目里他的Context就是另一个项目的路径,你的就自己看着办咯。然后保存,重启tomcat,大功告成!!!

总之要点就在于我在443那里留了一个默认的入口让他对应到localhost,具体原因我还不清楚,但问题暂时是解决了,别的再多多去了解吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值