首页/安全/加密与证书速查/Java 信任库排错(keytool)
本包目录(305 条)
加密算法基础95 条TLS 与 HTTPS60 条证书与 PKI30 条OpenSSL 实战30 条
证书运维排查49 条
密钥管理41 条

Java 信任库排错(keytool)

Java 应用校验失败常见于 cacerts 缺少企业根或中间证书、未使用应用自带的 trustStore。用 keytool 检查服务端证书与信任库内容,配合 javax.net.debug 观察握手细节。

加密与证书速查安全更新于 2026-10-12
检查服务端证书keytool -printcert -file cert.pem(新版 JDK 已移除 -sslserver,可先用 s_client 导出)
查看信任库keytool -list -cacerts(JDK 9+);旧版用 -keystore $JAVA_HOME/lib/security/cacerts
调试开关-Djavax.net.debug=ssl:handshake

排查与导入命令

排查与导入命令
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -outform PEM > server.pem
keytool -printcert -file server.pem
keytool -list -cacerts -storepass changeit | grep -i example
keytool -importcert -alias corp-root -file corp-root.pem -cacerts -storepass changeit
JDK 优先读取 jssecacerts(若存在),其次才是 cacerts;更新后需重启 JVM,并先备份原库。

易错点

  • 忘记 Java 有独立信任库,只在系统层更新证书
  • 无备份直接改 cacerts,回滚困难

数据来源与参考

  • Oracle JDK 官方文档(keytool / JSSE 参考指南)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌