Was it tested with AWS Iot?
mapo-job opened this issue · 3 comments
label:Question
Hi,
I tried the simple client with TLS enable with correct credential information but it does not work.
I'm new to lua so not sure how to troubleshoot. I have the nodejs example working but the lua script does not connect. The original lua script is working.
Result:
# lua simple.lua
created MQTT client mqtt.client{id="lua-simple-client"}
running ioloop for it
done, ioloop is stopped
Code change:
uri = "abcdef.123.iot.us-east-1.amazonaws.com",
id = "lua-simple-client",
secure = {
mode = "client",
protocol = "tlsv1_2",
verify = "peer",
options = "all",
cafile="/lua/root-CA.pem",
certificate="/lua/Device.cert.pem",
key="/lua/Device.private.key"
},
version= mqtt.v311,
Yes, it's tested with AWS IoT and working.
But there should be a tricky setup in your AWS Console. In short - you should create a policy with proper actions allowed and attach that policy and thing to your certificate.
If you need a step-by-step guide - see here: https://flespi.com/kb/flespi-to-aws (until the "Flespi AWS stream configuration" step).
After doing the steps described in that article you will get an MQTT broker at your uri = "abcdef.123.iot.us-east-1.amazonaws.com"
, which can accept connection from any MQTT client, like luamqtt.
Your secure={...}
table in your Lua code is correct except that "cafile" is usually "root-CA.crt", not "root-CA.pem", but you should adjust it according to your file names.
Just starting with Iot, thanks for the clarification.
The demo has a default policy on topic "topic_1" and resource client/sdk-nodejs-.
Just added "arn:aws:iot:us-east-1:############:client/lua-" solve the problem.
Thanks
can this be closed?