【问题标题】:Express Can Use .pfx file with encrypted private key without the private key's passwordExpress 可以使用带有加密私钥的 .pfx 文件,无需私钥的密码
【发布时间】:2017-10-16 13:25:02
【问题描述】:

我有一个 express 实例和一个未加密的 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-----

【问题讨论】:

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


    【解决方案1】:

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

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

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

    我在上面寻找的正确命令是

    openssl pkcs12 -in cert.pfx -info -nodes

    【讨论】:

      猜你喜欢
      • 2018-06-07
      • 2013-04-06
      • 2017-01-04
      • 1970-01-01
      • 2011-05-12
      • 2012-08-02
      • 1970-01-01
      • 2013-01-13
      • 2011-02-22
      相关资源
      最近更新 更多