tomcat配置https(ssl证书)
前提条件
- 域名
- tomcat类型的证书等文件
本篇选择赛门铁克的免费型DV SSL证书,在阿里云云盾平台购买的。直接在搜索框内搜索ssl或者ca证书,会在搜索页第一行看到ssl控制台。
在一系列的流程后,拿到了pfx证书和证书密码两个文件。
跟之前配置过的nginx和apache不一样。之前apache有3个文件,一个私钥文件,还有两个是公钥证书文件和证书链(或中间证书)文件。nginx少一个证书链文件,只有私钥文件和公钥证书文件。
证书安装
在tomcat安装目录下,创建存放证书等文件的文件夹。
cd /usr/local/tomcat9
mkdir certs
找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port="8443" 标签,增加如下属性:
keystoreFile="certs/xxx_xxx.xxx.com_tomcat.pfx"
keystoreType="PKCS12"
#此处的证书密码,请参考附件中的密码文件
keystorePass="证书密码"
完整的配置如下,其中port属性根据实际情况修改:
<Server>
...
<Service>
...
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxHttpHeaderSize="3097152" maxPostSize="-1" URIEncoding="UTF-8" />
...
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="cert/xxx_xxx.xxx.com_tomcat.pfx"
keystoreType="PKCS12"
keystorePass="您的证书密码"
clientAuth="false" sslProtocol="TLS" />
...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
...
<Engine name="Catalina" defaultHost="localhost">
<Host name="xxx.xxx.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
...
</Host>
</Engine>
</Service>
</Server>
默认的端口为8443,是因为正常情况下,443容易被占用。
证书文件说明
一般情况下, 您下载的文件是一个压缩包,解压后根据不同的证书格式可能包含以下文件:
.key 文件是证书私钥文件,如果申请证书时没有选择系统创建CSR,则没有该文件。此时该私钥文件由您自己保管。
.crt 文件是证书文件,一般包含两段内容。如果是Apache服务器,会将证书文件拆分成 _public.crt(证书)文件和_chain.crt(证书链或中间证书)文件。
.pem 文件是证书文件,一般包含两段内容。一般Nginx的一些文档会用该扩展名文件,在阿里云证书中与.crt文件一样。
友情提示: .crt扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要,修改成.pem等扩展名。
.pfx 文件,一般适合Tomcat/IIS服务器;每次下载都会产生新密码,该密码仅匹配本次下载的证书。如果需要更新证书文件,同时也要更新密码。
如果证书是在阿里云的产品上使用,建议下载Nginx版本证书。