我将要构建一个组件,该组件将使用密码接收 .pfx ,然后该应用需要提取一些信息,例如证书,私钥和结束日期。
我正在使用node-forge来尝试完成。我已经有了证书和私钥,但是当尝试导出证书时,结果是 RSA PRIVATE ,但是我希望得到 PRIVATE 。
那是我提取私钥的代码:
const fs = require('fs');
const forge = require('node-forge');
const file = fs.readFileSync('file.pfx');
const p12Der = forge.util.decode64(file.toString('base64'));
const pkcs12Asn1 = forge.asn1.fromDer(p12Der);
const pkcs12 = forge.pkcs12.pkcs12FromAsn1(pkcs12Asn1, 'PASSWORD');
const { key } = pkcs12.getBags({ bagType: forge.pki.oids.pkcs8ShroudedKeyBag })[
forge.pki.oids.pkcs8ShroudedKeyBag
][0];
const pemPrivate = forge.pki.privateKeyToPem(key);
console.log(pemPrivate);
上面代码的输出是这样的:
-----BEGIN RSA PRIVATE KEY-----
A LOT OF TEXT
-----END RSA PRIVATE KEY-----
但是,我希望这样:
-----BEGIN PRIVATE KEY-----
A LOT OF TEXT
-----END PRIVATE KEY-----
就像下面命令的输出一样
openssl pkcs12 -in file.pfx -passin pass:PASSWORD -nodes -nocerts
PS 。: 我无法使用openssl,因为AWS Lambda envoriment节点10.x没有安装openssl