Node.js NodeJS&;SSL-“;错误的密码读取";

Node.js NodeJS&;SSL-“;错误的密码读取";,node.js,ssl,https,certificate,Node.js,Ssl,Https,Certificate,节点无法为SSL通信创建安全上下文 具体来说,我正在尝试让远程通知在iOS上工作。我使用了一个名为node apn的模块,该模块抛出以下错误: Error: error:0906A068:PEM routines:PEM_do_header:bad password read at Error (native) at Object.createSecureContext (_tls_common.js:108:19) at Object.exports.connect (_tls_wrap.js

节点无法为SSL通信创建安全上下文

具体来说,我正在尝试让远程通知在iOS上工作。我使用了一个名为node apn的模块,该模块抛出以下错误:

Error: error:0906A068:PEM routines:PEM_do_header:bad password read
at Error (native)
at Object.createSecureContext (_tls_common.js:108:19)
at Object.exports.connect (_tls_wrap.js:852:21)
at apnSocket (/home/Slurp/node_modules/apn/lib/socket.js:56:19)
at Connection.<anonymous> (/home/Slurp/node_modules/apn/lib/connection.js:188:17)
at _fulfilled (/home/Slurp/node_modules/apn/node_modules/q/q.js:834:54)
at self.promiseDispatch.done (/home/Slurp/node_modules/apn/node_modules/q/q.js:863:30)
at Promise.promise.promiseDispatch (/home/Slurp/node_modules/apn/node_modules/q/q.js:796:13)
错误:错误:0906A068:PEM例程:PEM_do_头:错误的密码读取
错误(本机)
在Object.createSecureContext(_tls_common.js:108:19)
在Object.exports.connect(_tls_wrap.js:852:21)
在apnSocket(/home/Slurp/node_modules/apn/lib/socket.js:56:19)
在连接处。(/home/Slurp/node_modules/apn/lib/connection.js:188:17)
完成时(/home/Slurp/node\u modules/apn/node\u modules/q/q.js:834:54)
在self.promiseDispatch.done(/home/Slurp/node_modules/apn/node_modules/q/q.js:863:30)
在Promise.Promise.dispatch(/home/Slurp/node_modules/apn/node_modules/q/q.js:796:13)

不过,这似乎是一个一般性错误,实际上与APN无关。

这是因为您在生成证书时指定了一个密码短语。任何想要使用该密码的人都必须提供该密码

将密码短语字段添加到凭据可以解决此问题

var credentials = {
    key: fs.readFileSync('XXX.key', 'utf8'),
    cert: fs.readFileSync('XXX.crt', 'utf8'),
    passphrase: 'XXXX'
}

var httpsServer = https.createServer(credentials, app);

以下命令将生成未加密的密钥,因此不需要提供密码短语:

openssl rsa -in yourKey.key -out newKey.key

此命令将提示您输入密码短语。

使用这些密码短语生成pem

openssl genrsa-out server-key.pem 1024
openssl req-new-key server-key.pem-out server-csr.pem
openssl x509-req-in-server-csr.pem-signkey-server-key.pem-out-server-cert.pem

这个密码短语是用来创建
.pem
还是.crt文件的?我想它是用来创建.crt文件的