本文介绍如何在Windows系统上的Tomcat服务器部署SSL证书,具体包括SSL证书的下载、Tomcat配置文件的修改,以及安装后HTTPS效果验证等步骤。
本文以Windows Server 2025操作系统、Tomcat-9.0.105版本为例介绍。不同版本的操作系统或Web服务器,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务。
证书格式选择说明
选择证书格式时需考虑实际需求、资源情况和系统兼容性。
JKS是Java的标准密钥库格式,被广泛应用于基于Java的应用和服务中。如果您主要在Java环境中工作,且使用的工具和脚本都与JKS兼容良好,那么选择JKS可能更为自然和方便。
PFX是一种跨平台通用标准,不仅被Java支持,也被其他非Java环境(如Windows系统、IIS服务器、各种编程语言的SSL库等)广泛接受。如果您需要在多种技术栈之间共享证书,或者与非Java系统有紧密集成,PFX可能提供更好的互操作性。
前提条件
操作步骤
步骤一:下载SSL证书
登录数字证书管理服务控制台。在左侧导航栏选择 。
在SSL证书管理页面,定位需部署的目标证书,并确认以下信息:
在目标证书操作列单击更多进入证书详情页面,然后在下载页签中下载服务器类型为Tomcat的证书。
解压下载的证书压缩包,解压后包含一个证书文件(.pfx或.jks)和证书密码文件(.txt)。
说明选择证书格式时,应根据实际需求、资源和系统兼容性来决定。
JKS是Java专用的密钥库格式,适合主要在Java环境下使用,如果您的工具和脚本都支持JKS,建议选择JKS。
PFX是一种通用格式,被Java及其他平台广泛支持。如果需要跨不同技术栈或与非Java系统集成,建议选择PFX格式。
步骤二:在Tomcat服务器部署证书
登录Windows服务器。
阿里云服务器
以下操作以阿里云云服务器 ECS 为例进行说明,其他类型的服务器请参照对应产品文档进行操作。
登录ECS管理控制台,在页面左侧顶部,选择目标ECS实例所在地域。
在左侧导航栏中选择
,在实例页面找到目标ECS实例,点击操作列的远程连接。在弹出的对话框中,选择通过Workbench远程连接并单击立即登录。
选择终端连接作为连接方式,输入相关认证信息,并根据页面提示完成登录,即可进入服务器终端。详细操作请参考使用Workbench登录ECS实例。
说明若系统弹出“安全组白名单开通提示”面板,请按照页面提示单击一键添加。
其他云厂商服务器
请通过对应云厂商提供的远程连接功能登录服务器终端。
非云厂商服务器(如物理服务器、IDC托管主机等)
请在本地使用登录服务器。
Windows:在系统自带的远程桌面连接应用进行连接。
macOS:可以在软件商店下载Windows App(之前名为Microsoft远程桌面)进行连接。
开放安全组的 443 端口。
重要若您的服务器部署在云平台,请确保其安全组已开放入方向 443 端口 (TCP),否则外部无法访问服务。以下操作以阿里云 ECS 为例,其他云平台请参考其官方文档。
登录ECS管理控制台,在页面左侧顶部,选择目标 ECS 实例所在地域。在实例页面,找到目标 ECS 实例。
单击目标实例名称,进入实例详情页面,单击
,确保存在一条授权策略为允许、协议类型为 TCP、目的端口范围为 HTTPS(443)、授权对象为任何位置(0.0.0.0/0)的规则。如不存在此规则,请进行添加。
开放服务器防火墙的443端口。
登录Windows服务器,单击左下角开始菜单,打开控制面板。
点击
。如果防火墙处于如下图的关闭状态,无需额外操作。
如果防火墙已开启,需放行HTTPS规则。
上传证书文件到服务器,以下三种方式任选其一即可。
Workbench上传文件
在前面步骤打开的 Workbench 页面中,单击左下角开始菜单,查找并打开名为此电脑、计算机或文件资源管理器的选项。
双击 xxx上的workbench。
从本地拖动之前步骤下载的zip文件至该目录,并右键刷新文件夹。
然后将目标文件从该目录拖动到 C 盘或者其他盘。
重要重新连接、退出实例时,Workbench会自动清除该实例重定向的驱动程序和文件夹中已上传的所有文件信息以节省空间,该目录仅用于文件传输,请不要保存文件。
远程连接工具上传文件
在使用远程桌面连接或Windows App连接实例时,可以直接将下载的证书文件使用远程桌面或Windows APP向Windows实例传输文件。
上传至服务器,具体操作,请参见在服务器上下载证书文件
如果您的服务器可以访问公网并登录阿里云控制台,则可以直接在服务器上登录数字证书管理服务控制台进行步骤一的下载。
将解压后的证书文件和密码文件上传到Tomcat服务器的conf目录。请根据实际需求,选择上传jks或pfx格式其中一种即可。
说明您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTY、Xshell或WinSCP等。如果您使用的是阿里云云服务器 ECS,上传文件具体操作,请参见使用远程桌面或Windows APP向Windows实例传输文件或上传文件到Linux云服务器。
编辑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>
可选:设置HTTP请求自动跳转到HTTPS。
编辑Tomcat配置文件
server.xml
,找到HTTP连接器(Tomcat通常默认监听8080端口),并修改redirectPort属性(如果没有请添加)。<!-- Tomcat默认监听8080端口,请修改为您实际监听的HTTP端口。 --> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" maxParameterCount="1000" />
在
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>
修改后的效果如下图。
说明以上配置修改完成后,即可将HTTP请求强制转发到HTTPS。
确认以上配置修改完成并保存后,进入Tomcat安装目录下的
bin
目录,重启服务器,以使SSL相关配置生效。停止Tomcat服务器。
shutdown.bat
启动Tomcat服务器。
startup.bat
步骤三:验证SSL证书是否安装成功
请通过 HTTPS 访问您已绑定证书的域名(如
https://yourdomain.com
,yourdomain.com
需替换为实际域名)。若浏览器地址栏显示安全锁图标,说明证书已成功部署。如访问异常或未显示安全锁,请先清除浏览器缓存或使用无痕(隐私)模式重试。
说明Chrome 浏览器自 117 版本起,地址栏中的
已被新的
替代,需单击该图标后查看安全锁信息。
如仍有问题,请参考常见问题进行排查。
后续步骤(可选)
开启域名监控
建议在证书部署完成后,为域名开启域名监控功能。系统将自动检测证书有效期,并在到期前发送提醒,帮助您及时续期,避免服务中断。具体操作请参见购买并开启公网域名监控。
常见问题
安装或更新证书后,证书未生效或 HTTPS 无法访问
常见原因如下:
域名未完成备案。请参见如何查看域名解析记录以及 ICP 备案信息。
服务器安全组或防火墙未开放 443 端口。请参见开放安全组的443端口和开放服务器防火墙的443端口。
证书的绑定域名未包含当前访问的域名。请参见如何判断绑定域名是否已匹配所有需保护的域名。
修改 Tomcat 配置文件后,未重启Tomcat服务。具体操作可参见停止并重启Tomcat服务。
证书文件未正确替换,或 Tomcat 配置未正确指定证书路径。请检查 Tomcat 配置文件和所用证书文件是否为最新且有效。
域名已接入 CDN、SLB 或 WAF 等云产品,但未在相应产品中安装证书。请参阅流量经过多个云产品时证书的部署位置完成相关操作。
当前域名的 DNS 解析指向多台服务器,但证书仅在部分服务器上安装。需分别在每个服务器中安装证书。
如需进一步排查,请参考:根据浏览器错误提示解决证书部署问题 和 SSL证书部署故障自助排查指南。
如何更新(替换)Tomcat 中已安装的 SSL 证书
请先备份服务器上原有的证书文件(.pfx或.jks,以及.txt文件),然后登录数字证书管理服务控制台,下载新的证书文件,并上传到目标服务器覆盖原有文件(确保路径和文件名一致)。最后,重启Tomcat服务,使新证书生效。