在Tomcat服务器安装SSL证书(Windows)

本文介绍如何在Windows系统上的Tomcat服务器部署SSL证书,具体包括SSL证书的下载、Tomcat配置文件的修改,以及安装后HTTPS效果验证等步骤。

重要

本文以Windows Server 2025操作系统、Tomcat-9.0.105版本为例介绍。不同版本的操作系统或Web服务器,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务

证书格式选择说明

选择证书格式时需考虑实际需求、资源情况和系统兼容性。

  • JKSJava的标准密钥库格式,被广泛应用于基于Java的应用和服务中。如果您主要在Java环境中工作,且使用的工具和脚本都与JKS兼容良好,那么选择JKS可能更为自然和方便。

  • PFX是一种跨平台通用标准,不仅被Java支持,也被其他非Java环境(如Windows系统、IIS服务器、各种编程语言的SSL库等)广泛接受。如果您需要在多种技术栈之间共享证书,或者与非Java系统有紧密集成,PFX可能提供更好的互操作性。

前提条件

  • 已通过数字证书管理服务控制台签发证书。具体操作,请参见购买正式证书提交证书申请

  • SSL证书绑定的域名已完成DNS解析,即您的域名已正确映射到主机IP地址。您可以通过控制台常用证书工具中的DNS生效验证,检测域名DNS解析是否生效。具体操作,请参见DNS生效验证

  • 已在Web服务器开放443端口(HTTPS通信的标准端口)。

    • 如果您使用的是阿里云ECS服务器,请确保已经在安全组规则入方向添加TCP 443端口。具体操作,请参见管理安全组规则

    • 如果您使用的是其他云服务商或本地服务器,请确保在防火墙或安全组中开启TCP 443端口。

  • 如果待部署SSL证书的网站计划部署在中国内地,则您需要按照工信部的相关要求完成ICP备案,否则将影响网站的正常访问。更多信息,请参见什么是ICP备案

步骤一:下载SSL证书

  1. 登录数字证书管理服务控制台

  2. 在左侧导航栏,选择证书管理 > SSL证书管理

  3. SSL证书管理页面,定位到目标证书,在操作列,单击更多,然后选择下载页签。

  4. SSL证书文件下载。

    下载PFX格式证书

    服务器类型Tomcat操作列,单击下载

    image..png

    下载JKS格式证书

    服务器类型JKS操作列,单击下载

    image..png

步骤二:在Tomcat服务器部署证书

  1. 将解压后的证书文件和密码文件上传到Tomcat服务器的conf目录。请根据实际需求,选择上传jkspfx格式其中一种即可。

    image

    说明

    您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTY、XshellWinSCP等。如果您使用的是阿里云云服务器 ECS,上传文件具体操作,请参见使用远程桌面或Windows APPWindows实例传输文件上传文件到Linux云服务器

  2. 编辑Tomcat配置文件server.xml,修改与证书相关的配置(示例路径为C:\apache-tomcat-9.0.105\conf\server.xml)。

    PFX格式Tomcat9.0配置示例

    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true"
               maxParameterCount="1000">
        <SSLHostConfig>
            <!-- conf/example.com.pfx请您替换为证书的实际路径,证书密码替换为证书密码文件pfx-password.txt中的内容 -->
            <Certificate certificateKeystoreFile="conf/example.com.pfx"
                         certificateKeystorePassword="证书密码" type="RSA"/>
        </SSLHostConfig>
    </Connector>

    JKS格式Tomcat9.0配置示例

    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true"
               maxParameterCount="1000">
        <SSLHostConfig>
            <!-- 请将conf/example.com.jks替换为证书的实际路径,证书密码替换为证书密码文件jks-password.txt中的内容 -->
            <Certificate certificateKeystoreFile="conf/example.com.jks"
                         certificateKeystorePassword="证书密码" type="RSA" />
        </SSLHostConfig>
    </Connector>
  3. 可选:设置HTTP请求自动跳转到HTTPS。

    1. 编辑Tomcat配置文件server.xml,找到HTTP连接器(Tomcat通常默认监听8080端口),并修改redirectPort属性(如果没有请添加)。

      <!-- Tomcat默认监听8080端口,请修改为您实际监听的HTTP端口。 -->
      <Connector port="80" protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="443"
                 maxParameterCount="1000"
                 />
    2. web.xml文件末尾添加以下配置项。

      <security-constraint>
          <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>
    3. 修改后的效果如下图。

      image

      说明

      以上配置修改完成后,即可将HTTP请求强制转发到HTTPS。

  4. 确认以上配置修改完成并保存后,进入Tomcat安装目录下的bin目录,重启服务器,以使SSL相关配置生效。

    • 停止Tomcat服务器。

      shutdown.bat
    • 启动Tomcat服务器。

      startup.bat

步骤三:验证SSL证书是否安装成功

证书安装完成后,您可通过访问证书绑定的域名验证该证书是否安装成功。

https://yourdomain   #需要将yourdomain替换成证书绑定的域名。

如果浏览器的地址栏出现image图标,表示证书已经安装成功。Chrome浏览器自117版本开始已将地址栏中的image图标移至image图标中,如下图所示:

image

相关文档