Azure Key Vault - 如何使用节点获取存储在 keyvault 中的私钥?
Azure KeyVault - How do I get the privatekey stored in keyvault with node?
我需要 HMAC 算法的秘密,或者用于 RSA 和 ECDSA 的 PEM 编码私钥,用于运行 JWT.sign()
现在我从函数 getSecret() 获取结果并将流写入 pfx 文件,然后我使用 openssl 获取私钥。
const result = await client.getSecret(vaultUri, secretName, secretVersion);
let writeStream = fs.createWriteStream("1.pfx");
writeStream.write(result.value, 'base64');
openssl pkcs12 -in 1.pfx -nocerts -nodes -out 1.key
openssl rsa -in 1.key -out 1_pri.key
如何在没有openssl的情况下通过节点服务器上的结果获取私钥?
非常感谢任何帮助。
如果你想从 .pfx 中获取私钥,试试这个:
const fs = require('fs');
const forge = require('node-forge');
const file = fs.readFileSync("<path of your .pfx file>");
const p12Der = forge.util.decode64(file.toString('base64'));
const pkcs12Asn1 = forge.asn1.fromDer(p12Der);
const pkcs12 = forge.pkcs12.pkcs12FromAsn1(pkcs12Asn1, '<your .pfx password>');
const { key } = pkcs12.getBags({ bagType: forge.pki.oids.pkcs8ShroudedKeyBag })[
forge.pki.oids.pkcs8ShroudedKeyBag
][0];
const pemPrivate = forge.pki.privateKeyToPem(key);
console.log(pemPrivate);
结果:
我需要 HMAC 算法的秘密,或者用于 RSA 和 ECDSA 的 PEM 编码私钥,用于运行 JWT.sign()
现在我从函数 getSecret() 获取结果并将流写入 pfx 文件,然后我使用 openssl 获取私钥。
const result = await client.getSecret(vaultUri, secretName, secretVersion);
let writeStream = fs.createWriteStream("1.pfx");
writeStream.write(result.value, 'base64');
openssl pkcs12 -in 1.pfx -nocerts -nodes -out 1.key
openssl rsa -in 1.key -out 1_pri.key
如何在没有openssl的情况下通过节点服务器上的结果获取私钥?
非常感谢任何帮助。
如果你想从 .pfx 中获取私钥,试试这个:
const fs = require('fs');
const forge = require('node-forge');
const file = fs.readFileSync("<path of your .pfx file>");
const p12Der = forge.util.decode64(file.toString('base64'));
const pkcs12Asn1 = forge.asn1.fromDer(p12Der);
const pkcs12 = forge.pkcs12.pkcs12FromAsn1(pkcs12Asn1, '<your .pfx password>');
const { key } = pkcs12.getBags({ bagType: forge.pki.oids.pkcs8ShroudedKeyBag })[
forge.pki.oids.pkcs8ShroudedKeyBag
][0];
const pemPrivate = forge.pki.privateKeyToPem(key);
console.log(pemPrivate);
结果: