SIM7020 > Подключение к Azure IoT > Проверка подлинности с помощью самозаверяющего сертификата
Я пытаюсь установить соединение с устройством Azure IoT Hub с помощью SIM7020E (редакция: 1752B17SIM7020E) с частичным успехом. Для отправки аутентификации SAS с помощью AT+CTLSSEND и AT+CHTTPSEND работает нормально, но когда используется аутентификация Individual Enrollment > Certificates (X.509), ни один из подходов TLS, CHHTP, MQTT не работает (подход MQTT не работает для токена SAS). также).
Я мог успешно отправлять телеметрию через инструменты MQTTBox, mosquitto_pub, postman с рабочего стола для методов аутентификации SAS и сертификата. Вот мне и интересно, знает ли кто-нибудь, что может быть не так? Вот лог для MQTT:
AT+CSETCA=0,1244,1,0,"<IoTHubRootCA_Baltimore.pem part1>"
OK
AT+CSETCA=0,1244,0,0,"<IoTHubRootCA_Baltimore.pem part2>"
OK
AT+CSETCA=1,1332,1,0,"<Device Primary.crt part1>"
OK
AT+CSETCA=1,1332,0,0,"<Device Primary.crt part2>"
OK
AT+CSETCA=2,1656,1,0,"<Device Primary.pem part1>"
OK
AT+CSETCA=2,1656,0,0,"<Device Primary.pem part2>"
OK
AT+CMQTTSNEW="<iothub>.azure-devices.net","8883",60000,1132
ERROR
Журнал для HTTP:
AT+CHTTPCREATEEXT=1,8185,1301,"https://<iothub>.azure-devices.net,,,2520,<IoTHubRootCA_Baltimore.pem part1 in HEX>"
OK
AT+CHTTPCREATEEXT=1,8185,1294,"<IoTHubRootCA_Baltimore.pem part2 in HEX>"
OK
AT+CHTTPCREATEEXT=1,8185,1140,",2238,<Device Primary.crt part1 in HEX>"
OK
AT+CHTTPCREATEEXT=1,8185,1104,"<Device Primary.crt part2 in HEX>"
OK
AT+CHTTPCREATEEXT=1,8185,1148,",3340,<Device Primary.pem part1 in HEX>"
OK
AT+CHTTPCREATEEXT=1,8185,1078,"<Device Primary.pem part2 in HEX>"
OK
AT+CHTTPCREATEEXT=0,8185,1120,"<Device Primary.pem part3 in HEX>"
OK
AT+CHTTPCON=0
+CHTTPCREATEEXT: 0
OK
AT+CHTTPSEND=0,0,"/devices/<deviceId>/modules?api-version=2021-04-12"
OK
+CHTTPERR: 0,-1
AT+CHTTPDISCON=0
OK
AT+CHTTPDESTROY=0
OK
И лог для TLS:
AT+CTLSCFG=1,1,"<iothub>.azure-devices.net",2,443,3,0,4,2,5,4
OK
AT+CTLSCFG=1,6,1320,1,"<IoTHubRootCA_Baltimore.pem part1>"
OK
AT+CTLSCFG=1,6,1320,0,"<IoTHubRootCA_Baltimore.pem part2>"
OK
AT+CTLSCFG=1,7,1164,1,"<Device Primary.crt part1>"
OK
AT+CTLSCFG=1,7,1164,0,"<Device Primary.crt part2>"
OK
AT+CTLSCFG=1,8,1736,1,"<Device Primary.pem part1>"
OK
AT+CTLSCFG=1,8,1736,1,"<Device Primary.pem part2>"
OK
AT+CTLSCFG=1,8,1736,0,"<Device Primary.pem part3>"
OK
AT+CTLSCONN=1,1
OK
+CTLSCONN: 1,1
AT+CTLSSEND=1,208,"GET https://<iothub>.azure-devices.net/devices/<deviceId>/modules?api-version=2021-04-12 HTTP/1.1\r\nHost: <iothub>.azure-devices.net\r\n\r\n"
OK
+CTLSSEND: 1,202
AT+CTLSRECV=1,1000,801
OK
+CTLSRECV: 1, -30464
AT+CTLSCLOSE=1
OK
+CTLSCLOSE: 1,1
Наиболее информативным является подход TLS, который возвращает +CTLSRECV: 1, -30464, что, как я предполагаю, означает «что-то не так с сертификатом», но сертификат действителен и работает для настольных компьютеров.