温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在Tomcat中配置SSL证书

发布时间:2025-12-16 06:37:22 来源:亿速云 阅读:182 作者:小樊 栏目:系统运维

在 Tomcat 中配置 SSL 证书

一 准备与前置检查

  • 证书与文件:准备好已签发的证书文件(JKS 或 PFX/PKCS12)及对应的密码文件 .txt;若下载包内没有密码文件,请使用生成 CSR 时设置的密码。
  • 工具:安装 JDK/keytool 与 OpenSSL(PFX 转换时需要)。
  • 端口与网络:确保服务器与云安全组已放行 TCP 443;本机防火墙(firewalld/ufw/iptables)同样需要放行。
  • 域名匹配:证书的绑定域名必须与访问域名完全一致(含 www 与根域名的区别),多服务器部署时每台服务器都要安装同一证书。

二 准备证书文件

  • 场景 A(平台生成 CSR):下载证书包,在 Tomcat 目录内获取 xxx.jks 与 xxx_keystorePass.txt,将二者上传至服务器(如 /etc/ssl/cert 或 Tomcat 安装目录下的 cert)。
  • 场景 B(自己生成 CSR,常见为 PEM/KEY 或 PFX):
    • 若已有 PEM + KEY:使用 OpenSSL 合成 PFX
      openssl pkcs12 -export -out server.pfx -inkey server.key -in server.pem
    • 将 PFX 转换为 JKS(便于统一使用 keystore 配置)
      keytool -importkeystore -srckeystore server.pfx -destkeystore server.jks -srcstoretype PKCS12 -deststoretype JKS
    • 建议将 JKS 密码与 PFX 导出密码设为一致,避免 Tomcat 启动失败;将 server.jks 与 keystorePass.txt 放在同一安全目录。

三 配置 server.xml

  • Tomcat 7 及更早(传统 Connector 属性)
    • 建议端口使用 443;在 conf/server.xml 中找到或新增 Connector,启用 SSL 并指向 keystore:
    • 如需 HTTP 自动跳转 HTTPS,可在 conf/web.xml 的 之后添加:
      CLIENT-CERTClient Cert Users-only Area SSL/* CONFIDENTIAL
  • Tomcat 8.5 / 9(基于 SSLHostConfig 的新语法)
    • 推荐显式指定主机名与协议,使用 NIO2 获得更好性能:
  • 提示
    • 证书密码若包含 &,在 XML 中需转义为 &。
    • 若需兼容老客户端,可在 sslProtocol 中启用多个协议(如 TLSv1+TLSv1.1+TLSv1.2),但生产环境建议仅启用 TLSv1.2+。

四 启动与验证

  • 重启 Tomcat:执行 bin/shutdown.sh && bin/startup.sh(Windows 使用 .bat),观察 catalina.out 无报错。
  • 连通性测试:
    • 本机:ss -tlnp | grep ‘:443’ 或 nc -zv 127.0.0.1 443
    • 公网:nc -w 3 -vz your.domain.com 443
  • 浏览器访问:打开 https://your.domain.com(端口 443 可省略),地址栏出现锁形图标表示成功。若异常,优先检查 443 端口与安全组/防火墙策略。

五 常见问题与排查

  • 启动报错 “Cannot recover key”:通常由于 keystore 密码 与 私钥密码 不一致;请确保 JKS 与 PFX 的密码一致,或 keystore 与 keyEntry 密码一致。
  • 浏览器提示域名不匹配:证书绑定的域名必须与访问域名完全一致(例如 www 与根域名不同)。
  • 访问不了 HTTPS:确认云安全组与服务器防火墙已放行 443/TCP,且证书文件、路径、权限正确。
  • 证书链不完整导致不受信任:按顺序导入中间证书与根证书到 keystore(先中间后根),或直接使用包含完整链的 PFX。
  • 需要强制 HTTPS:在 web.xml 增加 CONFIDENTIAL 约束,或在前端(如 Nginx/负载均衡)做 80→443 跳转以减轻 Tomcat 负担。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手