Java 容器 SSL 证书部署指南:Tomcat/JBoss JKS 配置与 HTTPS 跳转
针对 Tomcat、JBoss 等主流 Java 容器,利用 JKS(Java KeyStore)存储库进行证书部署是实现 HTTPS 加密通信的标准方案。从实际情况来看,部署的核心在于 JKS 文件的完整性及其在 Connector 组件中的正确引用,结合 web-resource-collection 策略可实现业务层无感知的加密升级。
Java 容器(Tomcat/JBoss)SSL 证书部署指南
1. 获取 JKS 格式证书
JKS 是 Java 平台的标准密钥库格式。根据您的证书来源,可以通过以下两种方式获取:
场景 A:通过 MPKI 系统直接获取
- 登录 MPKI 管理后台:
https://mpki.trustasia.com。 - 进入订单管理,点击“证书下载”。
- 输入下单时设置的订单密码,并重新设置一个证书库密码(此密码将在后续配置文件中使用)。
- 证书格式选择 JKS,提交并保存下载得到的
.jks文件。
场景 B:非 MPKI 渠道(手动转换)
若您只有原始的私钥文件和证书代码,需先进行格式合成:
- 准备素材:
- 私钥文件: 与 CSR 一同生成的 Key 文件,文本开头为
-----BEGIN RSA PRIVATE KEY-----。 - 证书文件: 从邮件中提取的第一段证书代码,保存为
server.crt。
- 私钥文件: 与 CSR 一同生成的 Key 文件,文本开头为
- 在线转换:
访问 ssl证书工具 进行转换:- 源格式: pem;目标格式: jks。
- 上传: 对应上传
server.crt与私钥文件。 - 设置密码: “密钥库密码”自定义设置(如
123456),此密码即为 JKS 的访问密码。
- 提交后获取生成的
.jks证书库文件。
2. 在 Java 容器中部署证书
将生成的 JKS 文件上传至服务器(建议存放于容器的 conf 目录下,禁止存放在 webapps 公开目录)。以 Tomcat 为例,修改 conf/server.xml 文件:
配置 Connector 元素:
找到被注释的 443 端口配置段,取消注释并修改为如下属性:
XML
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/server.jks"
keystorePass="您的JKS密码"
clientAuth="false" sslProtocol="TLS" />
- keystoreFile: 指向 JKS 文件的绝对路径或相对于容器根目录的相对路径。
- keystorePass: 填写在第一步转换时设置的密钥库密码。
- SSLEnabled: 必须设为
true以激活 SSL 协议。
3. Java容器中的http自动跳转https的安全配置
为了确保用户访问的安全性,建议强制所有 HTTP 请求重定向至 HTTPS。
到conf目录下的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>
此配置告知容器,所有资源(/*)都必须通过加密连接(CONFIDENTIAL)访问。
到server.xml去修改
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
redirectPort改成ssl的connector的端口443
重启后便会生效。
总结问题
问:JKS 文件路径包含中文或空格会有影响吗?
答:在某些 Java 环境下可能会导致文件加载失败。建议使用标准英文字符路径,并确保运行容器的用户对该文件有读取权限。
问:配置完成后,外部无法访问 443 端口?
答:请优先排查防火墙(iptables/firewalld)是否放行了 443 端口,或云服务器的安全组规则是否已开启。



京公网安备11010502031690号
网站经营企业工商营业执照
















