以编程方式在Node中创建证书和证书密钥

时间:2017-04-06 01:08:47

标签: node.js certificate

使用node.js,我想编写代码来执行以下等效操作:

openssl genrsa -des3 -passout pass:x -out server.pass.key 2048
openssl rsa -passin pass:x -in server.pass.key -out server.key
rm server.pass.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt

完成后,我需要RSA密钥server.key和自签名SSL证书server.crt

forge看起来最有希望,但到目前为止,我还没有想出如何让它发挥作用。我有以下代码:

var pki = forge.pki;
var keys = pki.rsa.generateKeyPair(2048);
var privKey = forge.pki.privateKeyToPem(keys.privateKey);
var pubKey = forge.pki.publicKeyToPem(keys.publicKey);

但是当我将pubKey写入文件时,我发现它始于......

-----BEGIN PUBLIC KEY-----
MIIB...
-----END PUBLIC KEY-----

...并且无法识别,而使用上面的openssl则以:

开头
-----BEGIN CERTIFICATE-----
MIID...
-----END CERTIFICATE-----

1 个答案:

答案 0 :(得分:0)

好的,正如您可能已经意识到的那样,我没有生成证书。它需要更多的工作,你可以find here。基本上,经过一系列设置后,我必须创建,签名并将证书转换为Pem:

cert.sign(keys.privateKey);
var pubKey = pki.certificateToPem(cert);

希望这有助于其他人!