I have an azure sphere application connected and pushing telemetry to Azure IoT device provisioning service with inbuilt wifi module available in MT3620 MCU. I followed this article to achieve this. https://learn.microsoft.com/en-us/azure-sphere/app-development/setup-iot-hub-with-dps?tabs=cliv2beta
Now my requirement is to deploy the device in a remote location where wifi is not available, for that I chose "MikroE LtE IoT Click 2" board which uses "Quectel BG96 - LTE Cat M1/Cat NB1/EGPRS".
Now I need to connect to same Azure device provisioning service using AT commands, Quectel has provided sample AT command to connect using MQTT
//Configure MQTT session into SSL mode.
AT+QMTCFG=”SSL”, 0, 1, 2
OK
//If SSL authentication mode is “server authentication”, store CA certificate to UFS.
AT+QFUPL="cacert.pem",1758,100
CONNECT
<Input the cacert.pem data, the size is 1758 bytes>
+QFUPL: 1758,384a
OK
//If SSL authentication mode is “server authentication”, store CC certificate to UFS.
AT+QFUPL="client.pem",1220,100
CONNECT
<Input the client.pem data, the size is 1220 bytes>
+QFUPL: 1220,2d53
OK
//If SSL authentication mode is “server authentication”, store CK certificate to UFS.
AT+QFUPL="user_key.pem",1679,100
CONNECT
<Input the client.pem data, the size is 1679 bytes>
+QFUPL: 1679,335f
OK
//Configure CA certificate.
AT+QSSLCFG="cacert",2,"cacert.pem"
OK
//Configure CC certificate
AT+QSSLCFG="clientcert",2,"client.pem"
OK
//Configure CK certificate.
AT+QSSLCFG="clientkey",2,"user_key.pem"
OK
//Configure SSL parameters.
AT+QSSLCFG="seclevel”,2,2 //SSL authentication mode: server authentication
OK
AT+QSSLCFG="sslversion”,2,4 //SSL authentication version
OK
AT+QSSLCFG="ciphersuite”,2,0XFFFF //Cipher suite
OK
AT+QSSLCFG="ignorelocaltime",1 //Ignore the time of authentication.
OK
//Start MQTT SSL connection
AT+QMTOPEN=0, "a1zgnxur10j8ux.iot.us-east-1.amazonaws.com",8883
OK
+QMTOPEN: 0,0
//Connect to MQTT server
AT+QMTCONN=0,"MQTT-1"
OK
+QMTCONN: 0,0,0
//Subscribe to topics.
AT+QMTSUB=0,1,"$aws/things/ MQTT-1/shadow/update/accepted",1
OK
+QMTSUB: 0,1,0,1
//Publish messages.
AT+QMTPUB=0,1,1,0,"$aws/things/MQTT-1/shadow/update/accepted"
>This is publish data from client
OK
+QMTPUB: 0,1,0
//If a client subscribes to a topic named “$aws/things/MQTT-1/shadow/update/accepted” and other
devices publish the same topic to the server, the module will report the following information.
+QMTRECV: 0,1,"$aws/things/MQTT-1/shadow/update/accepted",“This is publish data from client”
//Disconnect a client from MQTT server.
AT+QMTDISC=0
OK
+QMTDISC: 0,0
How do I get CA, CC and CK Certificates for Azure Device provisioning service?
Hope you have solved this problem already, I'm facing same problem last week.
To get cc, ca, ck, you can follow instruction via azure IoT sdk c document if you use PowerShell , DO NOT using PowerShell ISE, it might got error when you enter certPassword.