使用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-----
答案 0 :(得分:0)
好的,正如您可能已经意识到的那样,我没有生成证书。它需要更多的工作,你可以find here。基本上,经过一系列设置后,我必须创建,签名并将证书转换为Pem:
cert.sign(keys.privateKey);
var pubKey = pki.certificateToPem(cert);
希望这有助于其他人!