一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

SSL 证书如何在 Tomcat 服务器中配置 JKS 格式证书

时间:2026-08-26 19:45:49 编辑:袖梨 来源:一聚教程网

Tomcat配置JKS格式SSL证书核心三步:准备含私钥和证书链的JKS文件、修改server.xml启用HTTPS连接器(指定绝对路径、密码、端口及TLS协议)、重启服务验证;需确保keystoreFile为绝对路径、keystorePass正确、证书链完整,否则提示“不安全”。

在 Tomcat 中配置 JKS 格式 SSL 证书,核心是三步:准备好证书文件、修改 server.xml 启用 HTTPS 连接器、重启服务验证。不需要改代码或装插件,重点是路径、密码、端口和格式匹配。

确认证书文件已就位

JKS 文件必须包含私钥和证书链(含中级 CA),且由 Java keytool 或可信转换工具生成。常见来源有:

  1. 从证书服务商下载的 xxx_server.jks(附带 keystorePass.txt
  2. 用 OpenSSL + keytool 自行转换:先有 domain.crtprivate.key,再执行:

    openssl pkcs12 -export -in domain.crt -inkey private.key -out temp.p12 -name tomcat

    keytool -importkeystore -srckeystore temp.p12 -srcstoretype PKCS12 -destkeystore server.jks -deststoretype JKS

  3. 若只有 PEM 文件但无私钥,无法生成有效 JKS —— 私钥不可缺失

编辑 server.xml 配置 HTTPS 连接器

打开 $CATALINA_HOME/conf/server.xml,找到或新增一个 <Connector>,关键字段如下(以 443 端口为例):

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreType="JKS" keystoreFile="/usr/local/tomcat/conf/server.jks" keystorePass="your_keystore_password" />

注意:

  1. keystoreFile 必须是绝对路径,推荐放在 conf/ 下便于管理
  2. keystorePass 是创建 JKS 时设的密钥库密码,不是私钥单独密码
  3. 如需兼容老系统,可加 sslEnabledProtocols="TLSv1.2,TLSv1.3" 显式指定协议
  4. 避免直接复制网上 XML 片段,容易混入全角符号或隐藏字符导致启动失败

补充安全与跳转设置(可选但推荐)

仅配好连接器还不够,建议同步做两件事:

  1. 强制 HTTP 跳转 HTTPS:在 conf/web.xml</welcome-file-list> 后添加:

    <security-constraint>

    <web-resource-collection>

    <url-pattern>/*</url-pattern>

    </web-resource-collection>

    <user-data-constraint>

    <transport-guarantee>CONFIDENTIAL</transport-guarantee>

    </user-data-constraint>

    </security-constraint>

  2. 验证证书有效性:用 JDK 自带命令检查 JKS 是否可读:

    keytool -list -v -keystore /path/to/server.jks -storepass your_keystore_password

    输出中应看到 Owner: 域名匹配、Issuer: 为可信 CA、Trust chain: 完整

重启并测试访问

保存配置后,执行:

  1. Linux:systemctl restart tomcat$CATALINA_HOME/bin/shutdown.sh && $CATALINA_HOME/bin/startup.sh
  2. Windows:net stop Tomcatnet start Tomcat

然后浏览器访问 https://your-domain:443(或 :8443,若未改端口)。看到锁图标、地址栏显示“安全”,即表示成功。若提示不信任,大概率是用了自签名证书或证书链不全。

热门栏目