来自 Node.js 的 Amazon SNS 的 CERT_UNTRUSTED 错误响应

Posted

技术标签:

【中文标题】来自 Node.js 的 Amazon SNS 的 CERT_UNTRUSTED 错误响应【英文标题】:CERT_UNTRUSTED Error Response from Amazon SNS from Node.js 【发布时间】:2015-03-09 00:20:06 【问题描述】:

我正在使用 sns-mobile 向 Amazon SNS 注册移动设备。我在使用 nodejs 的 SNS 推送通知上关注了 this tutorial。

创建 SNS 对象的代码如下所示:

var myApp = new SNS(
    platform: SNS.SUPPORTED_PLATFORMS.android,
    region: 'eu-west-1',
    apiVersion: '2010-03-31',
    accessKeyId: config.sns.key_id,
    secretAccessKey: config.sns.secret_key_id,
    platformApplicationArn: config.sns.arn
);

本例中注册/添加用户或设备的代码如下:

// Add the user to SNS
myApp.addUser(deviceId, null, function(err, endpointArn) 
    // SNS returned an error
    if(err) 
        console.log(err);
        return res.status(500).json(
            status: 'error occurred registering device'
        );
    

    // Tell the user everything is ok
    res.status(200).json(
        status: 'ok'
    );
);

记录到控制台的错误如下:

 [Error: CERT_UNTRUSTED]
  message: 'CERT_UNTRUSTED',
  code: 'NetworkingError',
  region: 'eu-west-1',
  hostname: 'sns.eu-west-1.amazonaws.com',
  retryable: true,
  time: Sun Mar 08 2015 17:13:44 GMT-0700 (US Mountain Standard Time),
  statusCode: undefined 

我试着四处寻找可能发生这种情况的原因,但不断有人声称这是 nodejs 的问题。

任何想法如何解决这个问题?

【问题讨论】:

【参考方案1】:

问题出在节点 v0.10.34 (Node.js) 上。这应该在 v0.10.35 中得到修复。

changelog: 2014.12.22, Version 0.10.35 (Stable)

tls: re-add 1024-bit SSL certs removed by f9456a2 (Chris Dickinson)

解决方案: 升级到node 0.10.35

【讨论】:

【参考方案2】:

我对 SES 也有同样的问题。我最终不得不使用节点 v0.10.33(这是在 2014 年 12 月)。所以,如果你最近才更新,我会使用以前的版本,直到错误解决。

(GitHub 上关于该问题的一些对话可能会有所帮助...https://github.com/joyent/node/issues/8894)

【讨论】:

以上是关于来自 Node.js 的 Amazon SNS 的 CERT_UNTRUSTED 错误响应的主要内容,如果未能解决你的问题,请参考以下文章

使用 Node JS 的 AWS SNS 推送通知

未收到来自 Amazon SNS 的 GCM 推送通知

Amazon SNS 静默推送

如何在 Android 应用程序中播放来自 Amazon S3 的视频?

Amazon SQS/SNS 策略错误

amazon aws sns,sms选项不可用?