使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)
使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)
一、概述
本文档用于指导如何在运行 Java 应用程序的服务器上,通过keytool工具将证书导入 Java 信任库,解决因证书未被信任导致的 SSL/TLS 通信问题(如PKIX path building failed错误)。
二、操作步骤
1. 获取证书文件
需先获取目标服务器的证书文件(通常为.cer或.crt格式)。若未获取,可通过以下方式导出:
-
浏览器导出:访问目标 HTTPS 网站 → 点击地址栏锁图标 → 查看证书 → 导出为.cer或.crt格式。
-
OpenSSL 导出(适用于 Linux/macOS):
执行以下命令(将example.com替换为实际域名):
echo -n | openssl s_client -connect example.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > certificate.crt
2. 上传证书到服务器
将获取的证书文件(如certificate.crt)上传至服务器的指定目录(示例:/tmp/certificate.crt)。
3. 执行 keytool 命令
在服务器上执行以下keytool命令(以 Linux/macOS 为例),将证书导入 Java 信任库:
keytool -import -alias myserver -keystore $JAVA_HOME/jre/lib/security/cacerts -file /tmp/certificate.crt
参数说明:
-
-alias myserver:为证书设置自定义别名(便于后续识别,可修改,如oa-server)。