Tomcat9安装SSL证书的详细步骤与配置指南
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
在当前互联网安全日益受到重视的背景下,为网站部署SSL(Secure Sockets Layer)证书已成为保障数据传输安全的重要措施,对于使用Apache Tomcat 9作为Web服务器的用户来说,正确配置SSL证书不仅能够实现HTTPS加密访问,还能提升网站的可信度和搜索引擎排名,本文将详细介绍如何在Tomcat 9中安装SSL证书,帮助开发者和运维人员顺利完成安全配置。
准备工作
在开始安装SSL证书之前,需要完成以下准备工作:
-
获取SSL证书
可以从权威的CA机构(如Let's Encrypt、DigiCert、阿里云、腾讯云等)申请免费或付费的SSL证书,通常会获得以下几个文件:- 服务器证书文件(如:
your_domain.crt) - 私钥文件(
private.key) - 中间证书(
ca-bundle.crt或chain.pem)
- 服务器证书文件(如:
-
准备Java环境
Tomcat依赖Java运行,确保已安装JDK 8或更高版本,并配置好JAVA_HOME环境变量。 -
备份原配置文件
修改前建议备份server.xml等关键配置文件,防止配置错误导致服务无法启动。
生成或导入证书到Keystore
Tomcat默认使用Java的密钥库(Keystore)来管理SSL证书,最常见的方式是使用keytool工具将证书导入.jks格式的密钥库中。
使用已有私钥和证书生成PKCS12再导入
openssl pkcs12 -export -in your_domain.crt -inkey private.key \
-out tomcat.p12 -name "tomcat" \
-CAfile ca-bundle.crt -caname root -chain
然后将其导入Java Keystore:
keytool -importkeystore -deststorepass changeit -destkeypass changeit \
-destkeystore keystore.jks -srckeystore tomcat.p12 \
-srcstoretype PKCS12 -srcstorepass your_password -alias tomcat
将生成的keystore.jks文件复制到Tomcat的conf目录下,/path/to/tomcat/conf/keystore.jks。
配置Tomcat的server.xml文件
进入Tomcat安装目录,编辑conf/server.xml文件,找到如下注释掉的HTTPS连接器部分:
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/keystore.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
-->
取消注释并修改为:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/keystore.jks"
certificateKeystorePassword="changeit"
type="RSA" />
</SSLHostConfig>
</Connector>
注意:
port可设为443(标准HTTPS端口),若无权限绑定443,可使用8443。certificateKeystorePassword为创建keystore时设置的密码,默认常为changeit。- 确保Tomcat有权限读取keystore文件。
重启Tomcat并测试
保存配置后,重启Tomcat服务:
/path/to/tomcat/bin/shutdown.sh /path/to/tomcat/bin/startup.sh
打开浏览器访问:https://your-domain.com,若地址栏显示锁形图标且无安全警告,则表示SSL配置成功。
强制HTTP跳转HTTPS(可选)
为了提升安全性,可在web.xml中添加安全约束,强制所有请求通过HTTPS:
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
同时在server.xml的HTTP连接器中添加redirectPort="443",实现自动跳转。
通过以上步骤,您已成功在Tomcat 9中部署了SSL证书,实现了网站的HTTPS加密通信,定期更新证书、监控其有效期,并结合HSTS等安全策略,将进一步提升系统的整体安全性,掌握这一技能,对于构建安全可靠的Java Web应用至关重要。


