当前位置: 首页 > 面试题库 >

NodeJS和SSL-“密码读取错误”

边翔宇
2023-03-14
问题内容

节点无法创建用于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)

不过,这似乎是一个通用错误,并且与APN并没有真正的关系。


问题答案:

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

将通行短语字段添加到凭据即可解决此问题。

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

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


 类似资料:
  • 我正在使用NodeJS和Express,我想从请求中获取用户名和密码参数。我已经搜索了一段时间,我找不到我的答案。 我想接受来自 cURL 命令参数: 在我的申请中:

  • 问题内容: 我试图弄清楚如何使用crypto模块对nodejs中的密码进行加盐和哈希处理。我可以这样做来创建哈希密码: 但是我对以后如何验证密码感到困惑。 问题答案: 在您使用的任何持久性机制(数据库)中,您都将在哈希值和迭代次数之间存储结果哈希,这两者都是纯文本。如果每个密码使用不同的盐(您应该这样做),则还必须保存该信息。 然后,您将比较新的纯文本密码,使用相同的盐(和迭代次数)对其进行哈希处

  • 我试图将旧的TLS 1.0实现(我没有写)更新为TLS 1.2。 作为第一步,我集成了TLS1.1更改,将明文初始化向量放入记录中。那没问题。它似乎工作得很好,我可以阅读在TLS 1.1以及SSL Labs viewMyClient中。html。 然后,我适应了TLS1.2对伪随机函数的更改,将其改为(出于最实际的目的)P_SHA256,而不是(更复杂和奇怪的)一半和一半MD5/SHA1 riga

  • 我试图更新一个旧的TLS1.0实现(我没有编写)来使用TLS1.2。 作为第一步,我集成了TLS1.1的更改,将明文初始化向量放在记录中。那没问题。它似乎工作得很好,我可以阅读TLS1.1中的,以及SSL实验室的viewmyclient.html。 然后,我将伪随机函数的TLS1.2修改为(出于最实际的目的)P_SHA256而不是(更复杂和奇怪的)半半MD5/SHA1 Rigamarole。我第一

  • 问题内容: 当我尝试使用JMX监视这样的应用程序时: 它告诉我: 但是,当我用来限制读取访问权限时,它告诉我: 我疯了吗?我怎样才能解决这个问题? 这是Ubuntu btw,带有最新的oracle jdk 问题答案: 确保用于运行Java进程的用户有权访问该文件(所有者/读取权限)。 尝试: 另外,我建议您制作自己的密码文件并使用 全部在这里解释。

  • 我试图为Ruby安装Cumber gem。虽然很少有与此相关的话题,但我找不到确切的问题和确切的答案。在Windows上,我尝试运行命令,控制台返回: 错误:无法从https://rubygems.org/下载数据-SSL_connect返回=1 errno=0 state=SSLv3读取服务器证书B:证书验证失败(https://s3.amazonaws.com/production.s3.ru