Jump to content
    

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?
 

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

В 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 или знает аналогичные?

Edited by protoszx

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...