我有一个快速实例和一个未加密的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-----
答案 0 :(得分:0)
原来pfx本身和pfx中的私钥都是未加密存储的。
我错误地认为pfx中的私钥是加密的,因为1.)我被告知它是和
2.)并且因为除非使用-nodes
选项明确告知,否则openSSL包不会显示原始私钥
当openssl像上面那样显示Enter PEM pass phrase:
时,它询问如何加密显示的输出:不是如何解密存储的密钥,正如我原先认为的那样
我正在寻找的正确命令是
openssl pkcs12 -in cert.pfx -info -nodes