关于使用Tomcat8.5配置多个域名和ssl免费证书
首先得有备案域名和服务器
我用的是阿里的ECS,域名自己想法,然后在腾讯、阿里、七牛等平台申请免费ssl证书,这个可以使用一年,到时候需要重新申请,如果不差钱可以直接买多域名的证书,就没有这么麻烦了
找到自己用的证书(我以腾讯申请的为例)
首先把申请好的证书下载下来:
解压出来:
这里有几种不同服务容器的证书,我用的是Tomcat,是 .jks结尾的文件
证书有了,接下来就是配置Tomcat
首先把准备好的证书都放在Tomcat的conf目录下
进入conf目录下,打开server.xml文件进行配置
<!--我这里启用了线程池-->
<Connector executor="tomcatThreadPool" port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
enableLookups="false"
maxPostSize="10485760"
URIEncoding="UTF-8"
acceptCount="100"
acceptorThreadCount="2"
disableUploadTimeout="true"
maxConnections="10000"
SSLEnabled="true"
defaultSSLHostConfigName="wwww.test.a.com"> <!--默认的域名-->
<SSLHostConfig hostName="wwww.test.a.com">
<Certificate certificateKeystoreFile="conf/wwww.test.a.com.jks" certificateKeyAlias="wwww.test.a.com"
certificateKeystorePassword="wwww.test.a.com"
type="RSA" />
</SSLHostConfig>
<SSLHostConfig hostName="wwww.test.b.com">
<Certificate certificateKeystoreFile="conf/wwww.test.b.com.jks" certificateKeyAlias="wwww.test.b.com" <!-- 这是别名-->
certificateKeystorePassword="wwww.test.b.com" <!-- 这是在申请域名是设置的密码-->
type="RSA" />
</SSLHostConfig>
</Connector>
<Engine name="Catalina" defaultHost="wwww.test.a.com">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<!-- 我这个配置的是两个域名访问相同的资源 webapps 下的所有项目-->
<Host name="wwww.test.a.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Alias>wwww.test.a.com</Alias>
<Alias>wwww.test.b.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
<!-- 这一种相当于开了两个虚拟机 还是访问webapps 下所有项目 不建议使用-->
<Host name="wwww.test.a.com" 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="wwww.test.b.com" 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="wwww.test.a.com" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="项目位置"/>
</Host>
<Host name="wwww.test.b.com" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="项目位置"/>
</Host>
我采用的是第一个,自己也是摸着石头过河,有什么不合理的地方欢迎指出,共同进步
来源:CSDN
作者:H早起的鸟
链接:https://blog.csdn.net/qq_38951418/article/details/88694806