1

试图让我的 node.js IOT 示例正常工作,但不确定我需要设置什么配置才能传递给我的 thingShadow 构造函数awsIot.thingShadow(config)

这是我从 AWS 仪表板获得的示例配置

{
  "host": "foo.iot.us-east-1.amazonaws.com",
    "port": 8883,
    "clientId": "bar",
    "thingName": "bar",
    "caCert": "root-CA.crt",
    "clientCert": "bar-certificate.pem.crt",
    "privateKey": "bar-private.pem.key"
}

然而,这是我根据 sdk 自述文件设置的构造函数

{
  keyPath: 'bar-private.pem.key',
  certPath: 'bar-certificate.pem.crt',
  caCert: "root-CA.crt",
  clientId: 'bar'
}

我得到错误

events.js:141 抛出错误;// 未处理的“错误”事件 ^

Error: unable to get local issuer certificate
    at Error (native)
    at TLSSocket.<anonymous> (_tls_wrap.js:1017:38)
    at emitNone (events.js:67:13)
    at TLSSocket.emit (events.js:166:7)
    at TLSSocket._init.ssl.onclienthello.ssl.oncertcb.TLSSocket._finishInit (_tls_wrap.js:582:8)
    at TLSWrap.ssl.onclienthello.ssl.oncertcb.ssl.onnewsession.ssl.onhandshakedone (_tls_wrap.js:424:38)

caCert 基于什么 - 这是我在本地路径中拥有的证书吗?如果是这样,我从哪里获得它,仪表板作为某个地方的下载?我是否为 privateKey 发送了正确的证书文件?

4

1 回答 1

2

所以问题出在 root-CA.crt 文件上。我从 aws 库的 node_modules 目录中找到了我的,这是无效的。

我需要从 https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem获取 crt 文件

如本文档所述http://docs.aws.amazon.com/iot/latest/developerguide/iot-device-sdk-node.html

于 2016-06-14T19:57:51.797 回答