连接AWS IOT的证书配置参数问题

Certificate configuration parameter problems connecting to AWS IOT

试图让我的 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 readme设置的构造函数

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

我收到错误

events.js:141 扔呃; // 未处理的 'error' 事件 ^

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 基于什么 - 我在本地路径中拥有的证书是什么?如果是这样,我从哪里得到它,仪表板作为某处的下载?我是否为私钥发送了正确的证书文件?

所以问题出在 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

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