概述
需求是tomcat一个443端口,配置两个域名ssl证书。查了一些资料总结如下:
1.需要tomcat 8.5 版本以上,低版本不支持配置多个。我用的版本是8.5.58 ,如果你用更高版本的tomcat也是可以的。我之所以用8.5.58版本的是因为
我的jdk是1.7 的。
conf下的server.xml文件。配置如下
<?xml version="1.0" encoding="UTF-8"?>
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<!-- 80端口专向443端口 -->
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
redirectPort="443" />
<!--
443端口配置了两个域名对应两个证书,注意defaultSSLHostConfigName参数的值必须与SSLHostConfig中的一个的hostName相同,
即defaultSSLHostConfigName="www.aaa.com" 或 defaultSSLHostConfigName="www.bbb.net" ,官方文档就是这么要求的。
-->
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="www.aaa.com">
<SSLHostConfig hostName="www.aaa.com">
<Certificate certificateKeystoreFile="cert/3098620_www.aaa.com.pfx"
certificateKeystorePassword="xxx"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
<SSLHostConfig hostName="www.bbb.net">
<Certificate certificateKeystoreFile="cert/4536437_www.bbb.net.pfx"
certificateKeystorePassword="xxx"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
</Connector>
<!-- 777端口配置了一个域名,就不需要上面那么复杂了。 -->
<Connector port="777" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" >
<SSLHostConfig>
<Certificate certificateKeystoreFile="cert/4333994.net.pfx"
certificateKeystorePassword="xxx"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
</Connector>
<Connector protocol="AJP/1.3"
address="::1" port="8009"
redirectPort="443"
secretRequired="" />
<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" />
<!-- 设置默认项目名称 -->
<Context path="/" docBase="/home/website/" reloadable="false" />
</Host>
</Engine>
</Service>
</Server>
最后
以上就是阳光大炮为你收集整理的tomcat同一端口绑定多域名开启SSL的全部内容,希望文章能够帮你解决tomcat同一端口绑定多域名开启SSL所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复