Tomcat服务器安装SSL证书
本文介绍了在Tomcat服务器上配置JKS(Java KeyStore)和PFX(也称为PKCS12)格式SSL证书的方法,涵盖证书文件的下载与上传、配置证书参数及安装后的验证步骤。完成配置后,用户可通过HTTPS协议安全访问Tomcat服务器,保障数据传输的安全。
本文以安装在Linux操作系统中的Tomcat 7和8.5为例介绍。不同版本的操作系统或Web服务器,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务。
证书格式选择说明
选择证书格式时需考虑实际需求、资源情况和系统兼容性。
JKS是Java的标准密钥库格式,被广泛应用于基于Java的应用和服务中。如果您主要在Java环境中工作,且使用的工具和脚本都与JKS兼容良好,那么选择JKS可能更为自然和方便。
PFX是一种跨平台通用标准,不仅被Java支持,也被其他非Java环境(如Windows系统、IIS服务器、各种编程语言的SSL库等)广泛接受。如果您需要在多种技术栈之间共享证书,或者与非Java系统有紧密集成,PFX可能提供更好的互操作性。
前提条件
步骤一:下载SSL证书
登录数字证书管理服务控制台。
在左侧导航栏,选择。
在SSL证书管理页面,定位到目标证书,在操作列,单击更多,然后选择下载页签。
SSL证书文件下载。
下载PFX格式证书
在服务器类型为Tomcat的操作列,单击下载。
下载JKS格式证书
在服务器类型为JKS的操作列,单击下载。
解压缩已下载的SSL证书压缩包。
根据您在提交证书申请时选择的CSR生成方式,解压缩获得的文件不同,具体如下表所示。
CSR生成方式
证书压缩包包含的文件
系统生成或选择已有的CSR
包括以下文件:
证书文件(PFX格式/JKS格式):默认以证书ID_证书绑定域名命名。
密码文件(TXT格式):默认以证书格式-password命名。
重要每次下载证书时都会产生新的密码,该密码仅匹配本次下载的证书文件。
手动填写
如果您填写的是通过数字证书管理服务控制台创建的CSR,下载后包含的证书文件与系统生成的一致。
如果您填写的不是通过数字证书管理服务控制台创建的CSR,下载后只包括证书文件(PEM格式),不包含证书密码或私钥文件。您可以通过证书工具,将证书文件和您持有的证书密码或私钥文件转换成所需格式。转换证书格式的具体操作,请参见证书格式转换。
步骤二:在Tomcat服务器安装证书
将解压后的证书文件和密码文件上传到Tomcat服务器的conf目录。
说明Tomcat安装目录与您的服务器环境有关,您可以使用
sudo find / -iname "*tomcat*"
命令,查询Tomcat的安装目录。您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTy、Xshell或WinSCP等。如果您使用的阿里云云服务器 ECS,上传文件具体操作,请参见上传或下载文件(Windows)或上传文件到Linux云服务器。
进入Tomcat安装根目录,执行以下命令,打开server.xml文件。
sudo vim ./conf/server.xml
按照以下示例以及注释说明配置server.xml。
重要为避免启动Tomcat时出现错误,请在复制代码时删除注释。
Tomcat 7和8.5及以上版本在安装SSL证书时步骤相似,但因支持的Java版本及配置文件格式有异,故具体配置稍有不同。下面将针对这两个版本介绍如何配置SSL证书,请根据您的Tomcat版本选择合适的配置方法。
Tomcat7:Tomcat服务器自动选择SSL的实现方式。如果按照该方式无法完成后续配置,可能是因为您的环境不支持自动选定的SSL实现方式。
配置项:
配置示例:
PFX格式Tomcat7配置示例
<!-- #port属性根据实际情况修改(HTTPS默认端口为443)。如果使用其他端口号,则您需要使用https://domain_name:port的方式来访问您的网站。 keystoreFile值需替换为证书的实际路径。 keystorePass值需替换为证书密码文件pfx-password.txt中的内容。 如需了解其他配置项,请前往Tomcat官网查看。--> <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" keystoreFile="conf/domain_name.pfx" keystoreType="PKCS12" keystorePass="证书密码" 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"/>
JKS格式Tomcat7配置示例
<!-- #port属性根据实际情况修改(HTTPS默认端口为443)。如果使用其他端口号,则您需要使用https://domain_name:port的方式来访问您的网站。 keystoreFile值需替换为证书的实际路径。 keystorePass值需替换为证书密码文件jks-password.txt中的内容。 如需了解其他配置项,请前往Tomcat官网查看。--> <Connector port="443" protocol="HTTP/1.1" connectionTimeout="20000" redirectport="8443" maxParameterCount="1000" SSLEnabled="true" scheme="https" secure="true" keystoreFile="conf/domain_name.jks" keystoreType="JKS" keystorePass="证书密码" 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"/>
Tomcat8.5及以上:手动指定SSL的实现方式(指定使用JSSE实现方式)。
配置项:
配置示例(需去掉<!- - 和 - ->注释符):
PFX格式Tomcat8.5配置示例
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <SSLHostConfig> <!-- conf/domain_name.pfx请您替换为证书的实际路径,证书密码替换为证书密码文件pfx-password.txt中的内容 --> <Certificate certificateKeystoreFile="conf/domain_name.pfx" certificateKeystorePassword="证书密码" type="RSA"/> </SSLHostConfig> </Connector>
JKS格式Tomcat8.5配置示例
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <SSLHostConfig> <!-- conf/domain_name.jks请您替换为证书的实际路径,证书密码替换为证书密码文件jks-password.txt中的内容 --> <Certificate certificateKeystoreFile="conf/domain_name.jks" certificateKeystorePassword="证书密码" type="RSA"/> </SSLHostConfig> </Connector>
可选:在/conf/web.xml文件,配置HTTP请求自动跳转HTTPS。
进入Tomcat安装根目录,执行以下命令,打开web.xml文件。
sudo vim ./conf/web.xml
在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>
进入Tomcat的bin目录,执行以下命令,停止并重启Tomcat。
停止命令
sudo ./shutdown.sh
重启命令
sudo ./startup.sh
步骤三:验证SSL证书是否安装成功
证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。
https://yourdomain #需要将yourdomain替换成证书绑定的域名。
如果浏览器的地址栏出现图标,表示证书已经安装成功。
从Chrome 117版本开始,Chrome浏览器将地址栏HTTPS的改为了图标。请单击该图标,参考如下示例,出现标志时,表示证书安装成功。