You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ca.pem、tls.crt和tls.key生成keystore与truststore

生成Keystore和Truststore的步骤

你的curl请求里,--cacert对应信任根证书(存放在truststore),--cert和--key对应客户端身份证书(存放在keystore),以下是具体生成步骤:

一、生成Truststore(存放信任的CA证书)

Truststore用来存储你信任的根CA证书,对应curl的--cacert参数。使用JDK自带的keytool命令生成:

keytool -importcert -alias rootca -file ca.pem -keystore truststore.jks
  • -alias:给CA证书设置一个自定义别名(示例用rootca)
  • -file:指定你的CA证书文件路径(即ca.pem)
  • -keystore:生成的truststore文件名(示例用truststore.jks,jks是Java标准格式后缀)
    执行命令后会提示设置truststore的密码,务必记录下来,后续项目配置需要用到。

二、生成Keystore(存放客户端证书和私钥)

Keystore用来存储客户端的身份证书和私钥,对应curl的--cert和--key参数。需要先将PEM格式的证书和私钥合并为PKCS#12格式,再按需转为JKS格式:

步骤1:合并证书和私钥为PKCS#12文件

使用openssl命令完成合并:

openssl pkcs12 -export -in tls.crt -inkey tls.key -out client.p12 -name clientcert
  • -export:指定导出为PKCS#12格式
  • -in:客户端证书文件(tls.crt)
  • -inkey:客户端私钥文件(tls.key)
  • -out:生成的PKCS#12文件名(示例用client.p12)
  • -name:给客户端证书设置自定义别名
    执行时会提示设置导出密码,建议和后续keystore的密码保持一致,减少配置复杂度。

步骤2:(可选)将PKCS#12转为JKS格式

如果你的项目要求使用JKS格式的keystore,用keytool转换:

keytool -importkeystore -srckeystore client.p12 -srcstoretype PKCS12 -destkeystore keystore.jks -deststoretype JKS
  • -srckeystore:刚才生成的PKCS#12文件路径
  • -srcstoretype:源文件类型为PKCS12
  • -destkeystore:目标JKS文件名(示例用keystore.jks)
  • -deststoretype:目标格式为JKS
    执行时需要输入PKCS#12的密码和JKS的密码,按提示操作即可。

补充说明

  • 现在很多项目直接支持PKCS#12格式,你可以直接用client.p12作为keystore,无需转为JKS,步骤更简单。
  • 所有设置的密码要妥善保存,项目配置时需要通过密码加载truststore和keystore。
  • 可通过以下命令验证生成的文件是否有效:
    • 查看truststore内容:keytool -list -keystore truststore.jks
    • 查看keystore内容:keytool -list -keystore keystore.jks(或keytool -list -keystore client.p12 -storetype PKCS12)

内容的提问来源于stack exchange,提问作者Мария Лозинская

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 07:10:15