概要
因为公司新申请了域名,需要把两个项目分别放在两个域名下,然后又不想再搞一个服务器,所以需要在一个tomcat配置两个域名。
技术细节
主要是两个地方:
第一,配置两个ssl证书,阿里云申请的免费证书格式是psk,配置SSLHostConfig时,需要转换成jks格式的。可以在jdk安装位置的bin目录下用这个命令keytool -importkeystore -srckeystore www.xxx.com.cn.pfx -destkeystore www.xxx.com.cn.jks -srcstoretype PKCS12 -deststoretype JKS
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="xxx1.com.cn">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig hostName="xxx1.com.cn" >
<Certificate certificateKeystoreFile="/usr/local/lande//conf/cert/xxx1.com.cn.jks" certificateKeystorePassword="pass" type="RSA"/>
</SSLHostConfig>
<SSLHostConfig hostName="xxx2.com.cn">
<Certificate certificateKeystoreFile="/usr/local/lande//conf/cert_sun/xxx2.com.cn.jks" certificateKeystorePassword="pass" type="RSA"/>
</SSLHostConfig>
</Connector>
第二,配置两个host,注意appBase要不一样。
<Host name="xxx2.com.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Alias>www.xxx2.com.cn</Alias>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- 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 "%r" %s %b" />
</Host>
<Host name="www.xxx1.com.cn" appBase="webapps1"
unpackWARs="true" autoDeploy="true">
<Alias>www.xxx1.com.cn</Alias>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- 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 "%r" %s %b" />
</Host>