• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь HTTPS connection problem

belyaewas

New member
Здравствуйте! Требуется помощь в решении проблемы соединения с сервером по https.
Не происходит соединения с конкретным сервером. С серверами google.ru, github.com, vk.com, yandex.ru и т.д. соединение успешное.

Использовал код с примера с библиотеки (GitHub - esp8266/Arduino: ESP8266 core for Arduino) . Ниже приведен debug:

Starting connection to server...
please start sntp first !
State: sending Client Hello (1)
State: receiving Server Hello (2)
State: receiving Certificate (11)
Error: Invalid X509 ASN.1 file (X509 not ok)
Error: bad certificate
Alert: bad certificate
Alert: close notify
NO_CONNECTED

Disconnecting from server...
 

pvvx

Активный участник сообщества
Написали же сами: Error: bad certificate.
Поставьте правильный сертификат. Старые, 128-ми битные больше не принимаются на большинстве HTTPS. Смена по всей сети, 128-бит ныне не считается надежным и сопровождается красной полосой и предупреждением в броузерах.
Необходимо заменить SSL сертификаты с алгоритмом хеширования SHA1 на SHA2 до 1 января 2016 года! / VPS от Infobox / Сообщество InfoboxCloud
 

belyaewas

New member
Написали же сами: Error: bad certificate.
Поставьте правильный сертификат. Старые, 128-ми битные больше не принимаются на большинстве HTTPS. Смена по всей сети, 128-бит ныне не считается надежным и сопровождается красной полосой и предупреждением в броузерах.
Необходимо заменить SSL сертификаты с алгоритмом хеширования SHA1 на SHA2 до 1 января 2016 года! / VPS от Infobox / Сообщество InfoboxCloud
То есть сменить сертификат сервера? или метки? а если метки не подскажете как это сделать?
 

pvvx

Активный участник сообщества
То есть сменить сертификат сервера? или метки? а если метки не подскажете как это сделать?
Из решений видел, что к ESP8266 прикручивают отдельную микросхему, т.к. он не поддерживает SHA2 и новые сертификаты...
 

belyaewas

New member
Из решений видел, что к ESP8266 прикручивают отдельную микросхему, т.к. он не поддерживает SHA2 и новые сертификаты...
Стоп, но серверы типо гугла, яндекса же я конекчусь, они же не могли остаться на устаревших сертификатах
 

pvvx

Активный участник сообщества
Стоп, но серверы типо гугла, яндекса же я конекчусь, они же не могли остаться на устаревших сертификатах
Они частично поддерживают устаревшие сертификаты. Каждый день по разному, завтра уже могут отключить. Со старым типом вы получаете не полный доступ, а ограниченную версию страницы, аналогичную HTTP без "S".
Да и стоит ли заморачиваться, если все новые модули (RTL00, ESP-32S, ...), с такой-же ценой, как ESP8266 поддерживают TLS/SSL от MBED и имеют аппаратный комплекс для шифрации/дешифрации? На это у них уходит около 64 кило RAM (к примеру для google - у него длина текущего необходимого буфера на SSL_MAX_CONTENT_LEN от 10240, что для TLS/SSL от MBED надо умножить примерно на 4..6 и получите необходимый минимум для буферов в 'Heap', без учета буферов самого соединения). Предел у SSL_MAX_CONTENT_LEN = 16384. Если поставить максимум сразу - не требуется предварительного вписывания каких-то сертификатов или их хешей - т.е. доступны все HTTPS. Менять SSL_MAX_CONTENT_LEN стоит, если требуется ограничение использования RAM. Для git, к примеру хватает и до 7000, что отожрет не более 40 кило. На RTL8711AM - вообще это бир-бар, с его 2.5 Мегабайта RAM.
Исправить ситуацию выпадения из IoT ESP8266 можно только припаяв к нему внешнюю микруху шифрации/дешифрации, что где-то на сайте уже описано и сделали... Ну или не пользоваться общественными HTTPS, а лепить обращение только к своим ресурсам в глобальном инет по своим протоколам.
Пример HTTPS клиента для rtlDuino RtlDuino/WiFiSSLClient.ino at master · pvvx/RtlDuino · GitHub c регулировкой SSL_MAX_CONTENT_LEN.
 
Последнее редактирование:
Сверху Снизу