ESP8266 коммуникация со стационарным компьютером с windows

AlexTVR

Member
С FTP есть простейшее решение:
ESP должен опрашивать File Modification Time (команда MDTM) и запоминать это время. Если изменилось - грузить файл.

Вот только нормального FTP клиента на ESP нет и не будет в открытом доступе :p
Так что, невозможно решить задачу так, как она поставлена?
Если ДА - буду думать и менять постановку.
Только не LUA или иные скрипты.
 

Алексей.

Active member
Где берется сертификат и когда меняется, к примеру для файла JDY-10-pins.gif ?
Код:
openssl s_client -showcerts -connect raw.githubusercontent.com:443 </dev/null |openssl x509 -noout -dates
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert SHA2 High Assurance Server CA
verify return:1
depth=0 C = US, ST = California, L = San Francisco, O = "GitHub, Inc.", CN = www.github.com
verify return:1
DONE
notBefore=May  6 00:00:00 2020 GMT
notAfter=Apr 14 12:00:00 2022 GMT
сертификат гитхаба стухнет 14 апреля 2022г и будет заменен как это сделано было и в мае нынешнего года.
 

Алексей.

Active member
Специальных сертификатов никаких не требуется. Обычное HTTPS соединение. И я уверен, что вы сами без проблем для себя это сделаете, если потребуется.
Совсем не в этом проблема.
Как проверить подлинность хоста?

Установили якобы защищенное соединение, если известен отпечаток сертификата, то подлинность проверяем по нему
Как иначе определить что хост подлинный если нет возможности хранить корневые сертификаты и проверять цепочки.
 

Алексей.

Active member
@Алексей. - вы хотите получить готовый список действий или скетч для обновления устройств через github.
Свои велосипеды делал для этого-же, с гитхаба обновления кода грузил
Для добычи сертификатов отдельное приложение поднимал еа vps-ке и если сертификаты тухли, то за новыми отпечатками на отдельный сервер esp ходил
 

pvvx

Активный участник сообщества
Код:
openssl s_client -showcerts -connect raw.githubusercontent.com:443 </dev/null |openssl x509 -noout -dates
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert SHA2 High Assurance Server CA
verify return:1
depth=0 C = US, ST = California, L = San Francisco, O = "GitHub, Inc.", CN = www.github.com
verify return:1
DONE
notBefore=May  6 00:00:00 2020 GMT
notAfter=Apr 14 12:00:00 2022 GMT
сертификат гитхаба стухнет 14 апреля 2022г и будет заменен как это сделано было и в мае нынешнего года.
А эксплорер это знает? :) Или у вас так и не работает WiFiSSLClient client в Arduino?
Во всех нормальных WiFi модулях https client давно работает без всяких оттисков и прочего хлама.
 

Алексей.

Active member
WiFiSSLClient - работает, поблема не в установлении соединения, а в проверки подлинности хоста.
Провайдер может завернуть пакеты куда угодно, как проверить что соединившись попали туда, куда хотели, а не ещё куда-либо?
 

pvvx

Активный участник сообщества
Совсем не в этом проблема.
Как проверить подлинность хоста?
Это работа для озабоченных. За время эксплуатации устройства может смениться вся система, а человеку желающему хакнуть ваше устройство всё равно - есть или нет всяких сертификатов и прочей коммерческой опухоли. Зайдет с другой стороны. По тому говорить о безопасности нет никакого смысла.
При загрузке обновления обычно проверяют контрольную сумму... Этого достаточно от Arduino-хакеров.
 

pvvx

Активный участник сообщества
WiFiSSLClient - работает, поблема не в установлении соединения, а в проверки подлинности хоста.
Провайдер может завернуть пакеты куда угодно, как проверить что соединившись попали туда, куда хотели, а не ещё куда-либо?
Очередное безумие?
А если нет связи с сетью, то как проверить ваш сертификат? :)
Устройствам, обсуждаемых на данном форуме, это безразлично. Какой ещё сертификат для глючащего выключателя лампочки на ESP?
 

Алексей.

Active member
А если нет связи с сетью, то как проверить ваш сертификат? :)
А если нет связи с сетью, то немножко не получится с гитхабом соединиться однако.
А если связь есть, и на своем vps-е для одного из своих доменов сертификат просрочился, то пытаемся добыть отпечатки на том-же сервере но по другому доменному имени.
Я регаю пару доменных имен для одного сервера и сертификаты по срокам перекрываются, когда заканчивается один, продолжает действовать другой.
 

pvvx

Активный участник сообщества
Так что, невозможно решить задачу так, как она поставлена?
Если ДА - буду думать и менять постановку.
Только не LUA или иные скрипты.
Вам описали несколько вариантов. Классический, только для местной интрасети - это ftp, но вам придется написать клиента ftp самому.
Для доступа из любой части мира, через запросы ESP у github, писать меньше - есть готовый HTTPS client в Arduino и т.д. Но вам придется изучить как ставить запросы github для определения обновления.
 

pvvx

Активный участник сообщества
А если нет связи с сетью, то немножко не получится с гитхабом соединиться однако.
А если связь есть, и на своем vps-е для одного из своих доменов сертификат просрочился, то пытаемся добыть отпечатки на том-же сервере но по другому доменному имени.
Я регаю пару доменных имен для одного сервера и сертификаты по срокам перекрываются, когда заканчивается один, продолжает действовать другой.
Положите во встроенное ПО оттиск и кроме файла обновления кидайте новую прошивку. Перед сменой сертификата - смените прошивку или подгружаемый модуль (как ovls в моей устаревшей Web-помойке) Auto-OTA.
 

pvvx

Активный участник сообщества
Я регаю пару доменных имен для одного сервера и сертификаты по срокам перекрываются, когда заканчивается один, продолжает действовать другой.
И это когда-то помогло?
Озабоченные всё равно что нибудь придумают, чтобы это уже завтра не сработало. Они же как простейшие паразиты на этом живут - получают свой хлеб.
Не существует надежного способа загрузок с SSL в текущей редакции интернет, т.к. через пару минут после отладки выйдет какой новый пиар от озабоченных и систему заменят всю, с нуля!
Поднимут пиар "квантовых" компов - значит завтра всё сменят.
 

Алексей.

Active member
ESP8266 подключена в качестве клиента (сервера) к wiFi в домашней локальной сети.
ESP8266 знает адрес файла, периодически подключается к стационарному компу и смотрит изменился ли файл.
Если изменился, забирает его и записывает в свою файловую систему.
Если в домашней сети появляется esp то не составит труда обнаруживать его появление и загрузки новых файлов если это требуется.
Обнаружить что файл изменился, думаю, легче на компьютере чем на esp.
 

AlexTVR

Member
Вам описали несколько вариантов. Классический, только для местной интрасети - это ftp, но вам придется написать клиента ftp самому.
Для доступа из любой части мира, через запросы ESP у github, писать меньше - есть готовый HTTPS client в Arduino и т.д. Но вам придется изучить как ставить запросы github для определения обновления.
Допустим, для начала остановимся на FTP.
ESP - клиент должен запрашивать FTP-сервер на стац. компе. Так?
 

svs2007m

Active member
Раньше для решения мало мало значимых подобных задач использовали одноплатники, где поднимали от А до Я.
А здесь жаба душит ? :)
 
Сверху Снизу