海滨擎蟹

tomcat配置https(ssl证书)

前提条件

本篇选择赛门铁克的免费型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版本证书。

参考:阿里云https证书tomcat配置 - 愤怒的苹果ext
SSL证书安装指南

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »