针对 Tomcat、JBoss 等主流 Java 容器,利用 JKS(Java KeyStore)存储库进行证书部署是实现 HTTPS 加密通信的标准方案。从实际情况来看,部署的核心在于 JKS 文件的完整性及其在 Connector 组件中的正确引用,结合 web-resource-collection 策略可实现业务层无感知的加密升级。
JKS 是 Java 平台的标准密钥库格式。根据您的证书来源,可以通过以下两种方式获取:
https://mpki.trustasia.com。.jks 文件。若您只有原始的私钥文件和证书代码,需先进行格式合成:
-----BEGIN RSA PRIVATE KEY-----。server.crt。server.crt 与私钥文件。123456),此密码即为 JKS 的访问密码。.jks 证书库文件。将生成的 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" />
true 以激活 SSL 协议。为了确保用户访问的安全性,建议强制所有 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 端口,或云服务器的安全组规则是否已开启。
加密您的网站,赢得客户信任!