tomcat 多https证书配置 多keystore证书

同一IP,同一端口,同一Tomcat下配置多虚拟主机,资料查了好久,见过用其它证书的,也有多IP的,就是没有同IP的,所以做个记录,也希望对其他人能用的上!(本人使用的是tomcat 8.5.23)
Connector部分属性配置参考 Apache Tomcat 9 Configuration Reference (9.0.54) - The HTTP Connector

编辑 conf/server.xml
1.找到 443端口位置 做如下修改(多域名,重复复制 SSLHostConfig部份。

<Connector port="443" protocol="org.apache.coyote.http11.Http11Nio2Protocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="www.abc.com"> 
  <SSLHostConfig hostName="www.abc.com"> 
    <Certificate certificateKeystoreFile="key/wwwabc.keystore" certificateKeystorePassword="123456" type="RSA"/> 
  </SSLHostConfig>  
  <SSLHostConfig hostName="test.abc.com"> 
    <Certificate certificateKeystoreFile="key/testabc.keystore" certificateKeystorePassword="654321" type="RSA"/> 
  </SSLHostConfig> 
</Connector>


2.找到 Host 位置配置虚拟主机,各主机的根目录全部放在webapps内,这样不用开启多个服务,各虚拟主机共用80端口

<Engine name="Catalina" defaultHost="localhost"> 
  <Realm className="org.apache.catalina.realm.LockOutRealm"> 
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> 
  </Realm>  
  <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="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.abc.com" appBase="D:/logabc/www/" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>  
  <Host name="test.abc.com" appBase="D:/logtestabc/test/" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host> 
</Engine>


保存 重启tomcat服务
至此 大功告成! 
祝好运!


版权声明:本文为love1ky原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。