节点 js heroku 中 pem 文件的密钥

Posted

技术标签:

【中文标题】节点 js heroku 中 pem 文件的密钥【英文标题】:key for pem file in node js heroku 【发布时间】:2014-01-31 21:55:39 【问题描述】:

我得到以下苹果推送服务的代码:

  agent
.set('cert file', join(__dirname, 'cert.pem'))
.set('key file', join(__dirname, 'key.pem'))
.enable('sandbox');

当我在 localhost 上运行我的服务器时,我输入 pem 密钥,服务器开始工作。

如何将其设置为自动输入,因为我将它部署在 heroku 上,我做 git push heroku master 并且服务器失败,因为我没有输入 pem 密钥。

【问题讨论】:

你能生成不受密码保护的 pem 文件吗? @leesei 有可能吗?它要求我输入密码 在提示输入时尝试按 Enter。 @leesei 我这样做删除它openssl rsa -in key.pem -out key.pem 【参考方案1】:

您用于发送通知的库是否支持传递证书/密钥的字符串数据?您可以尝试使用heroku config 命令在heroku 上将内容添加为环境变量。例如:

heroku config:set CERT_DATA='content of the file'

然后您可以在代码中引用CERT_DATA 而不是读取文件。您还需要在开发期间设置环境变量的方法,但我对可用于建议如何执行此操作的工具不够熟悉。

【讨论】:

【参考方案2】:

我使用了这些命令:

openssl genrsa -out privatekey.pem 1024
openssl req -new -key privatekey.pem -x509 -days 7300 -out certificate.pem

我在 Node.js HTTPS 服务器中使用它们。

见Enabling HTTPS on express.js

【讨论】:

以上是关于节点 js heroku 中 pem 文件的密钥的主要内容,如果未能解决你的问题,请参考以下文章

APN 节点:加载 PEM 文件时出错

linux配置免密登录

10. 节点间免密登陆

Hadoop集群配置免密登录方法

ExpressJS 节点 HTTPS 服务器上的 Heroku 错误 H13

Hadoop集群节点之间ssh免密登录