Nei*_*ens 1 pfx pkcs#12 node.js typescript p12
我正在使用Node.JS和TypeScript编写一个小项目,其中一个要求是从.pfx文件中读取PFX证书并在代码中使用它来加密有效负载体
我有一个名为的公钥/私钥文件cert1.pfx,我的代码需要这个证书如下
...
const cert = loadPfx("cert1.pfx");
const p: Payload = new Payload();
p.addReaderCertificate(cert);
...
Run Code Online (Sandbox Code Playgroud)
我已经四处寻找但是找不到为我的用例加载PFX的方法,我已经看到了为HTTPS服务器或Express.JS加载PFX的示例,我看了一个node-x509,但那是用于BASE64编码的CER或PEM证书,我也看了node-rsa,但那是使用公钥/私钥进行加密/解密的.
有谁知道这是否可能?如果是这样,我会欣赏一些关于如何完成的指示.
Con*_*rew 13
听起来您只需要使用 Node 自己的 https 功能。Node可以直接读取PFX文件。(Https.createServer,SSL 选项)
来自 Node.js 站点的示例:
const https = require('https');
const fs = require('fs');
const options = {
pfx: fs.readFileSync('test/fixtures/test_cert.pfx'),
passphrase: 'sample'
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
Run Code Online (Sandbox Code Playgroud)
Nei*_*ens 11
所以经过大量的研究和拖网搜索谷歌档案后,我遇到了一个名为的软件包pem,它有以下方法:
pem.readPkcs12(bufferOrPath, [options], callback)
Run Code Online (Sandbox Code Playgroud)
这可以读取PKCS#12文件(或者换句话说是文件*.pfx或*.p12文件),我必须在我之前的研究中错过这个.
用法:
const pem = require("pem");
const fs = require("fs");
const pfx = fs.readFileSync(__dirname + "/test.pfx");
pem.readPkcs12(pfx, { p12Password: "password" }, (err, cert) => {
console.log(cert);
});
Run Code Online (Sandbox Code Playgroud)
输出:
{ cert: "...", ca: ["subca", "rootca"], key: "..." }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5556 次 |
| 最近记录: |