Перейти к содержанию
    

SIM800+HTTPS

Здравствуйте!
Имеются два варианта SIM800C с финальными прошивками, поддерживающие TLS1.2
1418B10SIM800C24_TLS12
и, соответственно,
1418B02SIM800C32_BT_TLS12

Необходимо реализовать поддержку HTTP/HTTPS запросов с помощью SIM800C.
С HTTP запросами проблем нет - всё функционирует, как и должно.
А вот с  HTTPS - проблемы.

Некоторые сервера в режиме игнорирования сертификата  (AT+SSLOPT=0,1) позволяют обмениваться по HTTPS.
Но далеко не все (На серверах, которые не пускают, есть поддержка версий TLS1.2 и даже предыдущих)
А, самое главное, никак не получается установить корневой сертификат.
Ни в каком варианте (.der, .crt, .p7b)...
Т.е., файл закачать без проблем.
Установить корневой сертификат - формально, тоже ОК (Например, AT+SSLSETROOT="C:\User\cert.crt",1467)
Но эффекта нет, от слова совсем.

Проблему "можно решить" за счет сторонних библиотек, например, в среде Arduino IDE.
И тогда связь устанавливается, сертификаты работают...

Но этот вариант не годится, так как конечное устройство должно взаимодействовать с SIM800 только через AT команды.
Т.е., обеспечить SSL средствами самой SIM800C, как это указано в её документации SIM800 Series_SSL_Application Note_V1.05.pdf

Есть, хоть кто-нибудь, кто смог успешно установить корневой сертификат на SIM800C и работать с ним по HTTPS?
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/29/2024 at 6:29 PM, protoszx said:

Проблему "можно решить" за счет сторонних библиотек, например, в среде Arduino IDE.
И тогда связь устанавливается, сертификаты работают...

А посмотреть что делают сторонние библиотеки не судьба?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 09.03.2024 в 20:02, turnon сказал:

А посмотреть что делают сторонние библиотеки не судьба?

Сторонние библиотеки работают не через AT команды, именно поэтому "можно решить" взяты в кавычки.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 10.03.2024 в 08:47, CADiLO сказал:

Можно лог файл увидеть как вы устанавливаете сертификат ?

 

Последовательность команд и ответы от 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 или знает аналогичные?

Изменено пользователем protoszx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 часов назад, protoszx сказал:

Поэтому, для SSL-обмена надо или переходить на другое железо, или использовать сторонний софт, а не голые AT- команды.

Это не так. Никто не мешает вам реализовать любой необходимый TLS-протокол в своей прошивке. Реализовать поверх существующего транспорта TCP-сокета (через AT-команды или любой другой канал). Не ожидая нового железа или чьих-то библиотек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...