单个Tomcat配置多个域并配置多个证书(单IP)

情节:HTTPS之前是没有想配置的但是我在家里测试网站的时候发现网站上有广告,然而我并没有投广告,在公司还有流量测试并没有广告所以我就怀疑是我家的宽带运营商植入了广告,我在浏览的时候发现并不是所有的网站都有广告如(百度,微博)我就想是不是带HTTPS的都没有广告所以我就想把我的网站也使用HTTPS加密形式,我在网上找了好多资料我都没有测试成功,然后我结合官网与网上的资料测试成功了,所以在此地记录一下。

正文开始

1.准备证书

1)因为我们是小成本网站所以选择免费的证书,现在好多网上都有免费的了,我选择的是阿里云---CA证书

01

2)点击购买证书

02

3)点击免费证书(购买数量可以多个根据自己的域名个数,这里一个只能绑定一个普通域名)

03

4.进入控制台补全信息

04

5.补全信息要注意的是普通域名的定义

06

05

6.证书审核通过后我们下载TOMCAT证书

07

2.配置Tomcat(我的是Tomcat9)

1)我们把下载好的证书放到tomcat-->conf-->cert( 自己新建)目录下

08

2)打开server.xml进行配置找到如图位置在下面添加代码

09


3)写配置代码(你需要修改的就是 defaultSSLHostConfigName:默认域名多个SSLHostConfig必须填此属性  hostName:域名  certificateKeystoreFile:证书路径最好写绝对的  certificateKeystorePassword:证书密码)这就配置出了多个域名多个证书了

<Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" URIEncoding="UTF-8"  scheme="https" secure="true" defaultSSLHostConfigName="www.luoruiyuan.cn">

		<SSLHostConfig honorCipherOrder="false" hostName="www.luoruiyuan.cn">
		    <Certificate certificateKeystoreFile="C:\Program Files\Tomcat\conf\cert\214XXXXXX35.pfx" certificateKeystorePassword="214XXXXXX35"/>
		</SSLHostConfig>
		
		<SSLHostConfig honorCipherOrder="false" hostName="mbk.luoruiyuan.cn">
		    <Certificate certificateKeystoreFile="C:\Program Files\Tomcat\conf\cert\214XXXXXX35.pfx" certificateKeystorePassword="214XXXXXX35"/>
		</SSLHostConfig>
		
		<SSLHostConfig honorCipherOrder="false" hostName="luoruiyuan.cn">
		    <Certificate certificateKeystoreFile="C:\Program Files\Tomcat\conf\cert\214XXXXXX35.pfx" certificateKeystorePassword="214XXXXXX35"/>
		</SSLHostConfig>
		
		<SSLHostConfig honorCipherOrder="false" hostName="movie.luoruiyuan.cn">
		    <Certificate certificateKeystoreFile="C:\Program Files\Tomcat\conf\cert\214XXXXXX35.pfx" certificateKeystorePassword="214XXXXXX35"/>
		</SSLHostConfig>
		
		<SSLHostConfig honorCipherOrder="false" hostName="file.luoruiyuan.cn">
		    <Certificate certificateKeystoreFile="C:\Program Files\Tomcat\conf\cert\214XXXXXX35.pfx" certificateKeystorePassword="214XXXXXX35"/>
		</SSLHostConfig>

</Connector>

3.代码修改

因为我们要同时支持HTTP与HTTPS所以在a、 img、ajax请求等一定要注意不能在前面加http://或者https://直接使用//开头如图

110

11

4.在浏览器中输入网址默认跳到https访问

1)打开Tomcat--->conf--->web.xml,在该文件</welcome-file-list>后面加上这样一段:

<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> 

5.最终效果

12


(1)