Skip to main content

Tomcat服务器安装PFX格式证书


您可以下载并安装已签发的SSL证书到Tomcat服务器。Tomcat服务器支持安装PFX格式和JKS两种格式的证书,您可以根据Tomcat版本选择要下载的证书格式。本文介绍了安装PFX格式证书的具体步骤。

前提条件

  • 已登录您的Tomcat服务器。

  • 您的Tomcat服务器上已经开启了443端口(HTTPS服务的默认端口)。

  • 已下载Tomcat服务器所需要的证书文件。下载证书的具体操作,请参见下载SSL证书到本地。

    重要 如果您在提交证书申请时,未将CSR生成方式设置为系统生成,则您下载的证书压缩包中不包含TXT密码文件。您可以选择其他包含密码文件的服务器,下载对应PEM格式证书,并使用证书格式转换工具将您的证书文件转化为PFX格式。

操作步骤

本文以安装在Linux操作系统中的Tomcat 7为例介绍安装PFX格式证书的具体步骤。

  1. 解压已保存到本地的Tomcat证书文件。 解压后您将看到文件夹中有以下文件:
  • 证书文件(domain_name.pfx)

  • 密码文件(pfx-password.txt)

    说明

    本文中证书名称以domain_name为示例。

    说明 本文中证书名称以domain_name为示例。 每次下载证书都会产生新的密码。该密码仅匹配本次下载的证书。如果需要更新证书文件,同时也要更新匹配的密码。每次下载证书都会产生新的密码。该密码仅匹配本次下载的证书。如果需要更新证书文件,同时也要更新匹配的密码。

  1. 在Tomcat安装目录下,创建cert目录,将解压的证书和密码文件拷贝到cert目录下。

    说明 Tomcat安装目录与您的服务器环境有关。您可以使用sudo find / -name tomcat命令,查询Tomcat的安装目录。

  2. 修改配置文件server.xml(路径:Tomcat安装目录/conf/server.xml),并保存。 您可以从以下方式中选择一种进行操作:

重要 使用方式一配置SSL连接器时,Tomcat将自动为您选择SSL的实现方式。如果您按照方式一无法完成后续配置,可能是因为您的环境不支持自动选定的SSL实现方式。这种情况下,您可以根据环境属性,使用方式二手动指定SSL的实现方式。

  • 方式一:Tomcat服务器自动选择SSL的实现方式。 修改SSL连接器的属性为以下内容:

    <Connector port="443"   #port属性根据实际情况修改(HTTPS默认端口为443)。如果使用其他端口号,则您需要使用https://domain_name:port的方式来访问您的网站。
    protocol="HTTP/1.1"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="Tomcat安装目录/cert/domain_name.pfx" #证书名称前需加上证书的绝对路径,请使用您证书的文件名替换domain_name。
    keystoreType="PKCS12"
    keystorePass="证书密码" #请替换为密码文件pfx-password.txt中的内容。
    clientAuth="false"
    SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
    ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
  • 方式二:您手动指定SSL的实现方式。 您可以在server.xml中移除以下代码的注释,即去掉该内容前的井号(#)。指定使用JSSE实现方式:

    <Connector
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="443" maxThreads="200"
    scheme="https" secure="true" SSLEnabled="true"
    keystoreFile="Tomcat安装目录/cert/domain_name.pfx" keystorePass="证书密码"
    clientAuth="false" sslProtocol="TLS"/>
  1. 可选:

    配置web.xml文件,开启HTTP强制跳转HTTPS。

    在web.xml文件中追加以下内容:

    <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>Web项目名称</web-resource-name> #请将该参数替换为您的项目名称。
    <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
  2. 重启Tomcat服务。

a. 执行以下命令,关闭Tomcat服务:

./shutdown.sh

b. 执行以下命令,开启Tomcat服务:

./startup.sh

后续操作

证书安装完成后,您可以通过访问证书绑定域名的方式验证证书是否安装成功:

https://domain_name #请将domain_name替换成证书绑定的域名。

  • 如果网页地址栏出现小锁标志,表示证书已安装成功。
  • 如果无法通过HTTPS正常访问网站,请确认您安装证书的服务器的443端口是否已开启。