从 .pem 文件中提取私钥

Posted

技术标签:

【中文标题】从 .pem 文件中提取私钥【英文标题】:extract private key from .pem file 【发布时间】:2021-03-14 04:56:11 【问题描述】:

我希望我的代码从我的 pem 文件中提取私钥。

我的 pem 文件看起来像这样 -> -----BEGIN RSA PRIVATE KEY----- 一些加密代码 -----END RSA PRIVATE KEY----- 。

我在 ruby​​ 中有相同的代码,但我无法在 javascript 中执行此操作。

【问题讨论】:

请将您的代码作为文本添加到您的问题中(并注意code formatting)。还有many good reasons,为什么代码图片不是个好主意。 我在尝试将引用的 sn-p 代码从 Ruby 音译为 JavaScript 时遇到了这个问题。来自Authenticating as a GitHub App,感兴趣的朋友可以参考一下。 【参考方案1】:

对于那些寻找Authenticate as a GitHub App 的人,在Node.js 14 上下文中:

const fs = require('fs');
const crypto = require('crypto');
const privatePem = fs.readFileSync('github-app-private-key.pem');
const privateKey = crypto.createPrivateKey(
  key: privatePem,
);

然后我可以将privateKey 传递给jose SignJWT 的sign method。

【讨论】:

【参考方案2】:
const fs = require("fs");

var myKey = fs.readFileSync("mykey.pem", "utf8").replace("-----BEGIN RSA PRIVATE KEY-----", "").replace("-----END RSA PRIVATE KEY-----", "").trim();

console.log("My key is: ", myKey);

请记住,这仅在文件中有一个键而不是键列表时才有效,但您应该了解要点。

【讨论】:

我不能在 readFIleSync 上使用替换,因为“缓冲区”类型上不存在属性“替换”

以上是关于从 .pem 文件中提取私钥的主要内容,如果未能解决你的问题,请参考以下文章

使用openssl命令从.p12文件中提取证书和私钥。

加密算法PFX文件提取公钥私钥

1:RSA 加密 .pem .csr .crt .der .p12文件的区别 base64

1:RSA 加密 .pem .csr .crt .der .p12文件的区别 base64

如何从 .cer 中提取 RSA 公钥并使用 OpenSSL 将其存储在 .pem 中?

从 X.509 证书中提取 PEM 公钥