我有 pkcs12 密钥库(.p12),其中包含多个私钥条目(3 个条目)我想从该存储中仅提取一个密钥并使用该密钥来解密文件(由公钥加密) 有没有办法使用密钥别名通过 openssl 从商店中提取一个密钥??
尝试以下命令从 PKCS12 容器中提取私钥:
openssl pkcs12 -in yourP12File.pfx -nocerts -out privateKey.pem
如果您可以使用 bash 并安装了
csplit
命令,此脚本将提取给定别名的私钥:
# Set targetAlias to the friendly name you wish to extract
tmp_dir=$(mktemp -d -p .)
openssl pkcs12 -in ${keystore_file} -nocerts -nodes -passin pass:${keystore_password} \
| csplit - -s "/friendlyName:/" "{*}" -f ${tmp_dir}/xx
if grep -q -l "friendlyName: ${targetAlias}$" ${tmp_dir}/xx*; then
cat $(grep -l "friendlyName: ${targetAlias}$" ${tmp_dir}/xx*)
else
echo "Could not find ${targetAlias} in ${keystore_file}" >&2
fi
请参阅此答案了解更多详情。