本教程通过阿里云获取到免费的https证书,在spring-cloud中目前只会设置一个域名的https访问服务器,在tomcat中可以设置不同的域名通过https访问同一个tomcat服务器,再通过服务器访问不同的工程中,但tomcat必须是8.5及以上版本才行,这里采用的是tomcat9。
一,在windows中部署后,通过不同的域名访问同一个端口,进入不同的工程项目。
1 . 在server.xml中添加两个host设置:
<Host name="testone.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/zp/"/>
<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="testtwo.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/taoci/"/>
<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="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" />
</Host>
2 . 本机测试需要配置host映射到本机
修改C:\Windows\System32\drivers\etc\host文件
在后面添加2个域名
127.0.0.1 testone.com
127.0.0.1 testtwo.com
设置后访问不同域名就可以进入/zp/与/taoci/文件夹下的index.html文件
二.在阿里云centos中部署
1 . 将阿里云网站(公网ip:197.21.5.36)解析了备案好的域名,如:www.test1.com ,www.test2.com ,www.test3.com 。
2 . 放开阿里云的相应端口,如:80。
3 . 复制tomcat到服务器中,并在webapps文件夹下新建test/test1,test/test2,test/test3,wp/zp-jtc文件夹,并放index.html页面。
4 . 设置server.xml文件内容,使不同域名访问不同的工程:
<Host name="www.test1.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="test/test1"/>
<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.test2.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="test/test2"/>
<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.test3.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="test/test3"/>
<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="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="test/test3"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
5 . 设置server.xml文件内容,使不同域名通过htts访问能访问同一个tomcat服务器:
需要修改两个地方:
一,设置端口
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改为:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
2.去掉下面代码的注释:
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
-->
修改为:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" URIEncoding="UTF-8" defaultSSLHostConfigName="www.test1.com"
maxThreads="150" SSLEnabled="true" >
<SSLHostConfig hostName="www.test1.com">
<Certificate certificateKeystoreFile="/opt/jks/test1.jks" certificateKeystorePassword="7WY7Caz8a" certificateKeyAlias="alias" type="RSA" />
</SSLHostConfig>
<SSLHostConfig hostName="www.test2.com">
<Certificate certificateKeystoreFile="/opt/jks/test2.jks" certificateKeystorePassword="nBfQGuQjE" certificateKeyAlias="alias" type="RSA" />
</SSLHostConfig>
<SSLHostConfig hostName="www.test3.com">
<Certificate certificateKeystoreFile="/opt/jks/test3.jks" certificateKeystorePassword="VcyTdFtm0" certificateKeyAlias="alias" type="RSA" />
</SSLHostConfig>
</Connector>
注释:certificateKeystoreFile="/opt/jks/test2.jks"为生产出的证书(详情请看阿里云的申请生成文档), certificateKeystorePassword="nBfQGuQjE"为证书密码。 certificateKeyAlias="alias"为证书别人,alias为阿里云免费证书默认名称。
6 . 浏览器下分别输入以下ip或域名进入相应的页面。
197.21.5.36
www.clagz.com
www.wwtaoc.com
www.wptaoci.com
注意:docBase="wp/zp-jtc" 地址不能写成 docBase="/wp/zp-jtc",会找不到项目路径。跟windows下的不一样。