Java 秘钥对相关操作

生成 JKS(Java Key Store) 文件

keytool -genkeypair -keystore mercury.jks -keyalg RSA -validity 180 -alias mercury

参数说明

  • keytool: 这是 Java Keytool 工具,用于管理密钥和证书。
  • -genkeypair: 指示 Keytool 生成一个密钥对(公钥和私钥)。
  • -alias mercury: 设置密钥对的别名为 "mercury"。别名用于在 KeyStore 中唯一标识密钥条目。
  • -validity 180: 指定生成的证书有效期为 180 天。
  • -keyalg RSA: 指定密钥算法为 RSA。
  • -keystore mercury.jks: 指定要创建或使用的 KeyStore 文件的名称为 "mercury.jks"。

然后按照提示输入相关信息即可生成 JKS 文件。

导出公钥

  1. 使用 keytool 从 JKS 中导出证书

    keytool -exportcert -keystore mercury.jks -alias mercury -file cert.crt
    

    这会生成一个名为 cert.crt 的文件。

  2. 使用 openssl 将证书转换为 PEM 格式

    openssl x509 -inform der -in cert.crt -out cert.pem
    

    这会从 cert.crt 创建一个名为 cert.pem 的 PEM 格式证书文件。

导出私钥

由于 keytool 不能直接导出私钥为 PEM 格式,您需要先,然后再从 PKCS12 导出私钥。

  1. 将 JKS 转换为 PKCS12 格式

    keytool -importkeystore -srckeystore mercury.jks -destkeystore keystore.p12 -deststoretype PKCS12
    

    替换相应的路径和密码。这会创建一个名为 keystore.p12 的 PKCS12 格式文件。

  2. 从 PKCS12 导出私钥为 PEM 格式:

    openssl pkcs12 -in keystore.p12 -nocerts -nodes -out key.pem
    

    使用您为 PKCS12 文件设置的密码。这会生成一个名为 key.pem 的包含私钥的 PEM 文件。

posted @ 2024-01-17 11:27  一剑九州寒  阅读(33)  评论(0编辑  收藏  举报