關於使用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>