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

htpps client

Алексей.

Active member
Почему htpps клиент в Ардуине умеет подключаться к серваку без наличия локальной копии сертификата, а клиент из ESP-IDF работает только при её наличии.
Открыл описание esp-idf для клиента HTTPS example
при инициализации используется struct esp_http_client_config_t
в которой для валидации сервера задается cert_pem
SSL server certification, PEM format as string, if the client requires to verify server
Если не требуется клиенту проверять сервер, пишут что задавать не нужно. Точнее если нужно проверить подлинность сервера, то нужно задать сертификат.
Получается врут, если не работает без сертификата?
 

pvvx

Активный участник сообщества
Виктор. вам бы с психологом пообщаться на предмет старческого брюзжания. На самом деле весь смысл Вашего сидения здесь свелся к заси,,анию всего и вся. Можно наверное дифференцированно подходить к ответам? Вместо того чтобы поливать всех желчью - просто помогать людям, пускай даже тривиальными ссылками на готовые решения. Либо промолчать. Станьте добрее, Виктор. Люди вам "спасибо" будут чаще говорить.
У меня не "старческое брюзжание", а роль такая на форуме - баба-яга. Я и так частенько от неё ухожу... :p
 

pvvx

Активный участник сообщества

pvvx

Активный участник сообщества

Pilnikov

Active member
@Pilnikov -ву это не нужно. За долгое время общения на форуме с ним известно, что ему нужно от вас только полностью готовое решение его вопроса.
Это нормальная практика. Вопрос же не стоит как "парни напишите за меня пару тройку десятков страниц кода, а то мне лень" Я задал конкретный вопрос - получил достойный ответ - Спасибо господа!!! работает.
Еще один вопрос - как понять, что сервер работает по ssl? - парсить адрес на предмет "htpps"? или в ответе будет содержаться инфа "что мол я хочу ssl"?
 

pvvx

Активный участник сообщества
Это нормальная практика. Вопрос же не стоит как "парни напишите за меня пару тройку десятков страниц кода, а то мне лень"
Вы же этого просите - смотрите чуть выше в сообщениях :)
Еще один вопрос - как понять, что сервер работает по ssl? - парсить адрес на предмет "htpps"? или в ответе будет содержаться инфа "что мол я хочу ssl"?
А вы какого клиента запускаете? Простого http или для https?
 

Pilnikov

Active member
изначально простого - если он скажет что сервак ssl - запущу htpps-ного
нарыл это

esp_http_client_transport_tesp_http_client_get_transport_type(esp_http_client_handle_tclient)
Get transport type.

Return
  • HTTP_TRANSPORT_UNKNOWN
  • HTTP_TRANSPORT_OVER_TCP
  • HTTP_TRANSPORT_OVER_SSL

Буду проверять - авось поможет.
 

pvvx

Активный участник сообщества
А как вы считаете - если вы запустили клиента HTTPS то сообщение connect он даст на соединение по UDP?

Или в Arduino другой мир и там всё безразлично с чем оно соединится? Типа "я не смогла и соединилась с UART".
 

Pilnikov

Active member
Я же написал - сначала хттп - если он не смог - тогда хттпс, в ардуине парсятся заголовки на предмет строки http или https.
Кстати ваш метод с отключением проверки сертификата работает не всегда, коректнее использовать bundle хранилище для верификации.
 

pvvx

Активный участник сообщества
Я же написал - сначала хттп - если он не смог - тогда хттпс, в ардуине парсятся заголовки на предмет строки http или https.
Кстати ваш метод с отключением проверки сертификата работает не всегда, коректнее использовать bundle хранилище для верификации.
Это не мой метод, а пример какого-то Ардуинщика. Корректнее не использовать проприетарную Arduino и закрытый чип ESP8266, а использовать чистый open-source.
 

Pilnikov

Active member
Ну что есть, того и имеем :);). Дорастем до Армов - будем опенсорсить
 

Pilnikov

Active member
Дурина то с чего стала пиетарной? Вроде все открыто. В есп только часть либ вайфайных закрыта - остальное - ломайте моск, если он у вас есть.
 

pvvx

Активный участник сообщества
Дурина то с чего стала пиетарной? Вроде все открыто. В есп только часть либ вайфайных закрыта - остальное - ломайте моск, если он у вас есть.
Дык закрыто и нет доков на сам чип. Читайте определение проприетарности (хотя бы в вики):
Правообладатель проприетарного ПО сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах.
Предотвращение использования, копирования или модификации могут быть достигнуты правовыми и/или техническими средствами.
Технические средства включают в себя выпуск только машинно-читаемых двоичных файлов, ограничение доступа к читаемому человеком исходному коду (закрытый исходный код), затруднение использования собственноручно сделанных копий.


Правобладатель в данном случае Espressif. Распространитель - Arduino. Вместе = монополия
Исходников нет? - нет.

И не стоит никого тут обманывать - Arduino с ESP - это не open-source и не GPL даже - нарушают.
 

Pilnikov

Active member
pvvx - можно чуть в сторону? как понять - поддерживает сервер соединение через websocket или нет. на примере браузера chrome. можно где-то это подглядеть?
 

pvvx

Активный участник сообщества
Вы спрашиваете: "Upgrade: WebSocket ..." в заголовке - он отвечает...
Ответ сервера, подтверждающий переход на WebSocket найдете там-же.

PS: Не умеете пользоваться google?
 

Pilnikov

Active member
как браузером спросить? правильно сделать get запрос в строке браузера, чтобы ответ в нем же увидеть.
 

pvvx

Активный участник сообщества
как браузером спросить? правильно сделать get запрос в строке браузера, чтобы ответ в нем же увидеть.
Не зная адреса ресурса запроса - никак.

У вас слишком странные вопросы. Типа: напишите где лежат ключи от сейфа.
 

pvvx

Активный участник сообщества
Уточню: адреса ресурса - имелось в виду строка с именем файла или прочие карякули, что пишутся после имени домена в URL строке.
Позвоните или напишите письмо держателю ресурса или его админу с вопросом есть ли у них ws и на какой ресурс он повешен... и не забудьте о спросить о пароле к сейфу...
 

Pilnikov

Active member
адрес ресурса я знаю http://hd.stream.frequence3.net допустим этот
еще вопрос где посмотреть коды ошибок сокетов
E (1066683) webclient: No data in recv. Errno = 128
или
E (1211013) webclient: Client socket: 57 connect: 0 errno:113
 
Сверху Снизу