I've been trying to connect my device to AWS IoT for a week, but I'm getting the same error "no matter what" I do (ERROR: mqtt_connect -45), which seemingly is an authorization issue of some kind?
Here are the exact steps I'm doing to connect my device:
- Register my thing in AWS IoT Core.
- I register a single thing
- I create a certificate using one-click certificate creation, I download the public key, private key, the Amazon Root CA 1, and I click activate.
- I attach a policy matching the one given in https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/nrf9160/aws_fota/README.html
- I load the project and configure my device
- I load the project from Open nRF Connect SDK Project (using the fw-nrfconnect-nrf v1.0.0)
- CMakeLists.txt -> ncs/nrf/samples/nrf9160/aws_fota/CMakeLists.txt
- Board directory -> ncs/zephyr/boards/arm/nrf9160_pca10090
- Board name -> nrf9160_pca10090ns
- Build directory -> ncs/nrf/samples/nrf9160/aws_fota/build_nrf9160_pca10090ns
- I put the contents of the certificates in the certificates.h file. CLOUD_CLIENT_PRIVATE_KEY is the private key, CLOUD_CLIENT_PUBLIC_CERTIFICATE is the public key and CLOUD_CA_CERTIFICATE is Amazon Root CA 1.I go to Project -> Configure nRF Connect SDK Project -> menuconfig
- I set the AWS IoT MQTT broker hostname to the URL found in things -> <my-thing-name> -> Interact -> HTTPS
- I set the AWS IoT MQTT broker port to 8883
- I set the Custom MQTT Client Id to <my-thing-name>
- I uncheck Use provisioned certificates
- I load the project from Open nRF Connect SDK Project (using the fw-nrfconnect-nrf v1.0.0)
- I flash the sample onto the board
- I go to Build -> Build and Debug
- When the debug screen appears I click the green arrow in the top right corner which runs the program.
This process gives the following output:
LTE Link Connecting ...
LTE Link Connected!
IPv4 Address 0x68e7dd12
client_id: <my-thing-name>
ERROR: mqtt_connect -45
Please help me resolve this as I can't identify which step(s) I'm missing.
Thank you in advance.