Express可以使用带有加密私钥的.pfx文件,而无需私钥的密码

时间:2017-10-16 13:25:03

标签: node.js express public-key-encryption

我有一个快速实例和一个未加密的pfx,其中包含我的证书和加密的私钥。当我在Express中加载pfx时,我不需要提供任何类型的密码,它可以工作。 node.js实例如何访问私钥?是否访问https工作所需的未加密私钥?

快递代码:

var httpsOptions = {
    'pfx': fs.readfileSync('./cert.pfx'),
    'passphrase': ''
};

https.createServer(httpsOptions, expressApp).listen(443, 'example.com');

来自openSSL的我的.pfx信息如下所示:

openssl pkcs12 -in cert.pfx -info
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: XXXXXXXXXXXX, Iteration 2048
Certificate bag
Bag Attributes
    localKeyID: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
subject=/OU=Domain Control Validated/CN=*.example.com
issuer=/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, 
Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure 
Certificate Authority - G2
-----BEGIN CERTIFICATE-----
XXXXXXXXXXX=
-----END CERTIFICATE-----
PKCS7 Data 
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Bag Attributes
    localKeyID: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
Key Attributes: <No Attributes>
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,XXXXXXXXXXX

XXXXXXXXXXXXXXXX==
-----END RSA PRIVATE KEY-----

1 个答案:

答案 0 :(得分:0)

原来pfx本身和pfx中的私钥都是未加密存储的。

我错误地认为pfx中的私钥是加密的,因为1.)我被告知它是和 2.)并且因为除非使用-nodes选项明确告知,否则openSSL包不会显示原始私钥

当openssl像上面那样显示Enter PEM pass phrase:时,它询问如何加密显示的输出:不是如何解密存储的密钥,正如我原先认为的那样

我正在寻找的正确命令是

openssl pkcs12 -in cert.pfx -info -nodes