Javascript 如何将aps.cer文件用于Node.js的APN(推送通知)?
我在node.js发送推送通知时遇到问题,我想是因为我在apple开发者帐户中生成的APN证书有问题。我从Node.js得到这个错误Javascript 如何将aps.cer文件用于Node.js的APN(推送通知)?,javascript,ios,node.js,apple-push-notifications,node-apn,Javascript,Ios,Node.js,Apple Push Notifications,Node Apn,我在node.js发送推送通知时遇到问题,我想是因为我在apple开发者帐户中生成的APN证书有问题。我从Node.js得到这个错误 VError: Failed to generate token: error:0906D06C:PEM routines:PEM_read_bio:no start line 我不确定我是否在apple开发者帐户中生成了正确的文件。请参见下面的屏幕截图,当我单击下载时,它会给我一个“aps.cer”文件,这是我在node.js项目中放入并与node app模块
VError: Failed to generate token: error:0906D06C:PEM routines:PEM_read_bio:no start line
我不确定我是否在apple开发者帐户中生成了正确的文件。请参见下面的屏幕截图,当我单击下载时,它会给我一个“aps.cer”文件,这是我在node.js项目中放入并与node app模块一起使用的文件。下面是我如何在我的代码中设置它:
let options = {
token: {
key: "aps.cer",
keyId: "singlemeout.Single-Me-Out",
teamId: "Team Name"
},
production: false
};
这是我的证书的屏幕截图
在使用证书时,您正在为节点apn提供基于令牌的配置 如果要继续使用证书,请执行以下操作:
- 证书应采用PEM格式
您可以按如下方式进行转换:
openssl x509 -inform DER -in aps.cer -out certificate.pem
- 您需要提供密钥,或者将其添加到证书中,或者将其作为单独的文件提供
- 您需要在配置对象中使用
、cert
和或key
属性,而不是pfx
等token.key
let options = { cert: "certificate.pem", key: "privatekey.pem" };
另外,您的
产品属性与使用的证书不一致。谢谢您的回复。我有几个问题;我使用什么文件作为“密钥”文件,这是我拥有的原始aps.cer文件吗?还是另一个文件?另外,在生成“certificate.pem”文件后,如何在节点代码中定义options变量?像这样的?let options={token:{keyId:“singlemeout.singleme Out”,teamId:“Team Name”},cert:“certificate.pem”,production:true};与上载以获取证书的证书请求同时生成的私钥。我不使用标准的Apple程序,也不使用openssl生成它,但它应该在您的密钥链中,您需要导出它。我已经更新了答案,以便更明确地说明您应该如何指定证书和密钥文件名。好的,我在我的密钥链中找到了Apple Push Services证书,我将其作为.pem导出到我的项目目录中,但现在在运行节点时出现此错误。错误:错误:0906D06C:PEM例程:PEM_read_bio:no start line我实际上查看了这两个文件,并且我的密钥链中的文件与certificate.PEM文件相同(这是我使用openssl转换为.PEM的.cer)。需要导出的不是证书,而是私钥。或者两者同时进行。