2

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

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

我应该使用哪些 OpenSsl 选项来创建可用的 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 库使用 NodeJS 加密的签名 API,如果您知道使用 PKCS#12 文件进行签名的方法,这可以救我。

4

1 回答 1

0

经过多次尝试,我找到了解决方案。所以,如果命令对其他人有用,我想我会在这里分享命令:这会从 PKCS#12 文件中提取私钥:

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

但结果是 PKCS#8 编码的,这不是 NodeJS 加密包所期望的。因此,我必须运行以下命令来获取传统的 PEM 编码:

openssl pkcs8 -in privateKeyPkcs8.pem -out privateKey.pem
于 2013-05-10T21:35:59.120 回答