如何从PKCS#12文件中提取私钥,以便与nodeJS OAuth一起使用

我有一个包含私钥的p12文件,用于签署我的OAuth请求。 但是,OAuth NodeJS lib( ciaranj / node-oauth )不会将此格式作为input。

我尝试了许多OpenSsl选项(PKCS#8或传统PEM格式)从PKCS#12密钥库中提取我的私钥,但我无法获得OAuth头部签名以被接受。

我应该使用哪些OpenSsl选项来创build可用的PEM文件,如下所示:

var privateKey = fs.readFileSync("privateKey.pem").toString('ascii'); var oauth= new OAuth(null, null, consumerKey, privateKey, "1.0", null, "RSA-SHA1"); 

我不是OpenSsl的专家,所以任何提示都会非常受欢迎。

PS:或者,由于OAuth lib使用NodeJSencryption标记API,如果您知道使用PKCS#12文件进行签名的方式,则可以节省我的时间。

经过多次尝试,我find了一个解决scheme。 所以,我想我会分享这里的命令,如果它可以对其他人有用:这将从PKCS#12文件中提取私钥:

 openssl pkcs12 -in myKeystore.p12 -nocerts -out privateKeyPkcs8.pem 

但是结果是PKCS#8编码,而不是NodeJSencryption包所期望的。 所以,我不得不运行以下命令来获得传统的PEM编码:

 openssl pkcs8 -in privateKeyPkcs8.pem -out privateKey.pem