Tomcat8.5.27配置一台服务器两个域名两个证书访问同一个项目

一、修改conf下的server.xml文件

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="www.xxxx.com" >
        <SSLHostConfig hostName="www.xxxx.com">
            <Certificate certificateKeystoreFile="/usr/local/tomcat7/conf/cert/112345.pfx" certificateKeystorePassword="证书密码" certificateKeystoreType="PKCS12"/>
        </SSLHostConfig>

        <SSLHostConfig hostName="test.erji.com">
            <Certificate certificateKeystoreFile="/usr/local/tomcat7/conf/cert/226583.pfx" certificateKeystorePassword="证书密码" certificateKeystoreType="PKCS12" />
        </SSLHostConfig>
</Connector>
defaultSSLHostConfigName配置了默认域名

SSLHostConfig 分别配置了一级和二级域名,分别配置各自相应的证书和密码以及证书类型

二、继续修改conf下的server.xml文件

 <Host name="www.xxxx.com" appBase="webapps" unpackWARs="false" autoDeploy="true">
                <Alias>www.xxxx.com</Alias>  
                <Alias>test.erji.com</Alias>
            <!-- 设置默认项目名称 -->
            <Context path="" docBase="ProjectName" reloadable="true" /> 
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                    prefix="localhost_access_log" suffix=".txt"
                    pattern="%h %l %u %t "%r" %s %b" />
        </Host>
这里配置两个域名访问同一个项目

其中<Alias></Alias>是访问这个项目的两个域名

三、如果需要访问不同的项目修改如下

<Host name="www.xxxx.com"  appBase="webapps" unpackWARs="false" autoDeploy="true">
        <!-- 设置默认项目名称 -->
        <Context path="" docBase="ProjectName1" reloadable="true" /> 
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

      </Host>

      <Host name="www.xxxx.com"  appBase="webapps" unpackWARs="false" autoDeploy="true">
        <!-- 设置默认项目名称 -->
        <Context path="" docBase="ProjectName2" reloadable="true" /> 
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
这样配置会启动两个虚拟机,所以如果是访问同一个项目,建议第一种方式

四、强制https访问

上面配置完成之后访问时http和https都可以访问,但是我需要只能https访问,在tomcat下的web.xml文件末尾添加

 <login-config>
     <!-- Authorization setting for SSL -->
     <auth-method>CLIENT-CERT</auth-method>
     <realm-name>Client Cert Users-only Area</realm-name>
     </login-config>
     <security-constraint>
     <!-- Authorization setting for SSL -->
     <web-resource-collection >
     <web-resource-name >SSL</web-resource-name>
     <url-pattern>/*</url-pattern>
     </web-resource-collection>
     <user-data-constraint>
     <transport-guarantee>CONFIDENTIAL</transport-guarantee>
     </user-data-constraint>
     </security-constraint>



阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页