2017-10-16 134 views
0

我有一个快速实例和一个包含我的证书和加密私钥的未加密pfx。当我使用express加载pfx时,我不需要提供任何类型的密码,并且它可以工作。 node.js实例如何访问私钥?不能访问https工作所需的未加密私钥?快速可以使用带有加密私钥的.pfx文件,而不使用私钥的密码

快递代码:

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

原来两个PFX本身和PFX内私钥保存加密。

我误以为PFX内的私有密钥 2),并加密,因为1)我被告知这是因为OpenSSL包将不显示原始私钥,除非明确告知与-nodes选项

在openssl显示Enter PEM pass phrase:,因为它上面那样,有人询问如何显示的输出加密:不是如何解密存储的关键,因为我本来以为

正确的命令我一直在寻找以上是

openssl pkcs12 -in cert.pfx -info -nodes