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 readmeに基づいて設定したコンストラクターです

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

エラーが発生します

events.js:141 throw er; // 未処理の「エラー」イベント ^

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 に答える