是否可以将JSON私钥转换为PKCS12格式


Is it possible to convert JSON private key into PKCS12 format?

我正在使用PHP中的谷歌云存储服务,我有一个JSON格式的APPLICATION_GOOGLE_CLIENT_KEY_FILE

我的问题是,我们可以将JSON私钥转换为PKCS12格式吗?如果是,请提供一些方法,因为我无法做到这一点。

以下是我从openssl文档中为类似情况拼凑的内容。它不是基于对键的任何深入理解,但它确实对我在Node中使用的库有效。在JSON文件的对象中,有一个名为"private_key"的成员。将其值复制到一个新文件中,例如"jsonkey.key",并用实际换行符替换所有出现的"''n"。然后运行命令:

openssl rsa -in jsonkey.key | openssl pkcs12 -password pass:notasecret -export -nocerts -out p12key.p12

当然,将p12key.p12更改为您希望调用的pkcs12文件。

这是基于Holy Joe的答案,使用了一个快速而肮脏的shell脚本。您需要安装节点。

#!/bin/sh
value=`cat ./json.json`
var=`node -p -e 'JSON.parse(process.argv[1]).private_key' "$value"`
dest=jsonkey.key
echo "$var" > "$dest"
openssl rsa -in jsonkey.key | openssl pkcs12 -password pass:notasecret -export -nocerts -out key.p12