Последовательность команд и ответы от SIM800, в части установки корневого сертификата, полностью совпадают с теми, что указаны в документации к SIM800:
SIM800 Series_SSL_Application Note_V1.05 и SIM800 Series_MQTT_Application Note_V1.03
Т.е., загрузка и утсановка файла сертификата проходит "успешно".
Всё хорошо вплоть до команды "AT+HTTPACTION=1" (или "AT+HTTPACTION=0" для GET)
И если выбран вариант HTTPS с корневым сертификатом, то ошибка, скорее всего 606
Если HTTP или HTTPS без сертифката, то "условно" нормально.
"Условно" потому, что, на самом деле, у SIM800 есть определённые проблемы с поддержкой протоколов TLS.
А именно - в лучшем случае, с последними прошивками, SIM800C может поддержать максимум TLS 1.2 и то в прыжке (не со всеми серверами на TLS 1.2 мне удалось связаться через AT- команды SIM800).
Но, на самом деле, сейчас это уже "минимальный" рекомендуемый уровень безопасности для HTTPS.
Уже во всю используется TLS 1.3, который точно не поддерживается (и уже не будет поддерживаться) на SIM800.
Поэтому, для SSL-обмена надо или переходить на другое железо, или использовать сторонний софт, а не голые AT- команды.
Потому, что никто не будет снижать безопасность сервера ради возможности подключения к нему железа по устаревшим протоколам.
Со сторонним софтом есть свои нюансы. Например, неприятным моментом явлеется выполнение команд в блокирующем режиме.
Но, по краней мере, с использованием такого софта снимаются все проблемы с использования SIM800. Вообще не имеет значения SIM800C, SIM800L... И какая версия прошивки...
В среде Arduino для ESP32, на мой взгляд, оптимальной является связка ESP_SSLClient + TinyGSM. Ну и очень выручает, что в ESP32 физически есть два ядра.
Хотелось бы найти подобное для STM32, причем, желательно, не HAL...
Ну и RTOS, само собой, должен помочь обойти блокирующие команды для систем, где недопустимо "задумываться" на десятки секунд.
Может кто-то уже портировал эти библиотеки под STM32 или знает аналогичные?