在Tomcat8上安装SSL证书

该方法适用于Tomcat 8及以上版本

在阿里云可以申请一年的单域名免费SSL证书,购买数量限制为20个,即可以为20个域名部署SSL。

阿里云申请免费ssl

申请成功后可以选择对应的服务器容器下载证书。

下载ssl

Tomcat下载的证书为一个压缩包,里面包括两个文件,一个文件是.pfx证书文件,另外一个是.txt密码文件。

在Tomcat安装目录下,新建一个cert目录,将.pfx文件放入该目录中。

Tomcat安装目录

修改conf/server.xml文件,在标签下添加标签,标签如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" URIEncoding="UTF-8"
defaultSSLHostConfigName="www.example.com">
<SSLHostConfig hostName="www.example.com">
<Certificate certificateKeystoreFile="cert/example.com.pfx"
certificateKeystoreType="PKCS12"
certificateKeystorePassword="********" />
</SSLHostConfig>
<SSLHostConfig hostName="example.com">
<Certificate certificateKeystoreFile="cert/example.com.pfx"
certificateKeystoreType="PKCS12"
certificateKeystorePassword="********" />
</SSLHostConfig>
<SSLHostConfig hostName="app.example.com">
<Certificate certificateKeystoreFile="cert/app.example.com.pfx"
certificateKeystoreType="PKCS12"
certificateKeystorePassword="********" />
</SSLHostConfig>
<SSLHostConfig hostName="ios.example.com">
<Certificate certificateKeystoreFile="cert/ios.example.com.pfx"
certificateKeystoreType="PKCS12"
certificateKeystorePassword="********" />
</SSLHostConfig>
</Connector>

其中标签中的certificateKeystoreFile属性指向.pfx证书文件,certificateKeystorePassword属性指向证书密码,即.txt文件中的密码。

利用可以为多个项目配置SSL证书,hostName属性指向对应的项目地址。

同一Tomcat部署多个项目,可参考Tomcat部署多个二级域名指向多个项目