📜  bash 从证书和密钥创建 jks - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:39:28.021000             🧑  作者: Mango

Bash 从证书和密钥创建 JKS

有时候我们会需要将证书和私钥存储到一个 keystore 中,这时候就需要使用 Java KeyStore (JKS) 文件格式。本文将介绍如何使用 Bash 脚本来创建 JKS 文件。

前提条件

在执行本文的脚本之前,需要确保已经具备了以下条件:

  1. 已安装 Java 运行环境。
  2. 证书和私钥已经保存为 PEM 格式的文件,如 cert.pemkey.pem
创建 JKS

使用以下脚本来创建 JKS 文件:

#!/bin/bash

CERT_FILE="cert.pem"
KEY_FILE="key.pem"
KEYSTORE_FILE="keystore.jks"
PASSWORD="password"

# First convert the private key to PKCS12
openssl pkcs12 -export -name mykey -inkey "${KEY_FILE}" -in "${CERT_FILE}" -out tmp.p12 -password pass:"${PASSWORD}"

# Then convert the PKCS12 file to JKS
keytool -importkeystore -destkeystore "${KEYSTORE_FILE}" -srckeystore tmp.p12 -srcstoretype pkcs12 -alias mykey -storepass "${PASSWORD}" -keypass "${PASSWORD}"

# clean up
rm tmp.p12

echo "The keystore ${KEYSTORE_FILE} has been successfully created."

该脚本中包含了三个变量:

  • CERT_FILE:证书的 PEM 文件路径。
  • KEY_FILE:私钥的 PEM 文件路径。
  • KEYSTORE_FILE:生成的 JKS 文件路径。
  • PASSWORD:JKS 文件的密码,可以自定义。

脚本分为两个步骤:

  1. 将私钥和证书转换为一个 PKCS12 文件。
  2. 将 PKCS12 文件转换为 JKS 文件。

最后,清理临时文件,并输出成功信息。

总结

通过以上的脚本,可以快速创建一个 JKS 文件,方便我们使用证书和私钥。同时,脚本也展示了一些 OpenSSL 和 keytool 的常用命令,希望能对你的工作有所帮助。