一、修改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>