Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Интернет вещей

Как установить защищенный встроенный веб-сервер на устройство Wi-Fi стоимостью 3 доллара

Начать разработку встраиваемых систем может быть сложно и дорого, но в этой статье я покажу вам, как развернуть FreeRTOS и стек lwIP TCP / IP на чипе WiFi с защищенным встроенным веб-сервером менее чем за 30 минут на сверхнизком уровне. Стоимость устройства.

Зачем использовать сервер с поддержкой Secure (TLS)?

Браузеры начали помечать стандартные (HTTP) серверы как «Недоверенные» в строке браузера (см. Рис. 2 ниже), и конечный покупатель будет больше доверять защищенному серверу. Я подробно расскажу об этом в разделе "Вопросы безопасности" ниже.

Чип ESP8266 WiFi и сервер Minnow

Вы можете получить ESP8266 всего за 1 доллар, но я рекомендую использовать плату с USB. USB нужен для прошивки прошивки. Дополнительный шаг, включающий использование преобразователя USB в TTL, потребуется без встроенного USB. Готовую к использованию плату ESP8266 с USB можно приобрести всего за 3 доллара.

Недорогой WiFi-чип ESP8266 отлично подходит для учебных целей, но он медленный, особенно с задачами, интенсивно использующими процессор, такими как выполнение шифрования. Вам действительно нужно подумать о дизайне, когда вы используете медленный чип с задачами, интенсивно использующими процессор.

ESP8266 работает на частоте 80 МГц, что хорошо для встроенного чипа, но выполнение кода очень медленное, поскольку код выполняется через память SPI. Запуск сервера с поддержкой TLS на этом устройстве обеспечивает настоящий будильник, когда речь идет о практических ограничениях микроконтроллеров с ограниченными ресурсами, и дает отличное введение в то, что можно запустить на медленном микроконтроллере. Выбранный тип защищенного веб-сервера и дизайн веб-приложения становятся критически важными для медленных устройств.

В этой статье я объясню, как скомпилировать и запустить Minnow Server на ESP8266. Сервер Minnow и справочный пример доступны на GitHub.

Недавно я опубликовал статью о Minnow Server здесь, на embedded.com. В статье объясняется, как использовать Minnow Server для создания современных веб-приложений для управления устройствами. В статье также рассматриваются преимущества использования сервера WebSocket с так называемым одностраничным приложением (SPA) при использовании TLS. Я рекомендую прочитать эту статью, поскольку мы будем готовить и компилировать тот же пример кода для ESP8266.

Начало работы

Мы будем использовать среду ESP8266 FreeRTOS / lwIP, предоставленную проектом esp-open-rtos, но не волнуйтесь, вам не нужно проходить сложную настройку esp-open-rtos. Вместо этого мы будем использовать предварительно настроенную и полностью готовую к использованию среду с простой в использовании сетевой IDE.

Загрузите IDE FreeRTOS / lwIP ESP8266

Перейдите в Real Time Logic и загрузите подготовленную ESP8266 IDE. IDE, разработанная для образовательных целей, включает предварительно сконфигурированный esp-open-rtos в комплекте с простой в использовании IDE исходного кода C. Для IDE требуется VmWare или VirtualBox. Я предпочитаю VmWare VirtualBox, так как мне легче пользоваться. Обратите внимание, что VmWare бесплатен для некоммерческого использования.

IDE ESP8266 также включает встроенный стек TLS (SharkSSL), а Minnow Server автоматически использует TLS при компиляции с SharkSSL.

Вы можете начать использовать ESP8266 IDE без платы ESP8266, но вы не можете загрузить и запустить скомпилированный код. Другими словами, вы можете загрузить среду IDE и выполнить все шаги этого руководства, кроме запуска кода на ESP8266.

Снимок экрана на рисунке 1 ниже показывает виртуальную машину и веб-среду IDE, подключенную к виртуальной машине. Обратите внимание, как виртуальная машина стала владельцем USB-соединения ESP8266. Веб-среда IDE обнаруживает это и показывает, что ESP8266 подключен и готов к установке новой прошивки.

щелкните, чтобы увеличить изображение

Рис. 1. Веб-среда IDE, подключенная к IP-адресу виртуальной машины. (Источник:Real Time Logic)

На снимке экрана на Рисунке 1 показан ESP8266, подключенный к светодиодам через макетную плату. Вам не нужны дополнительные светодиоды или макетная плата, если вы не хотите управлять внешними светодиодами, используемыми в примере приложения.

Обратите внимание, что IP-адрес вашей виртуальной машины, скорее всего, будет отличаться от показанного на рисунке 1. Обязательно щелкните в окне виртуальной машины для IP-адреса. Если окно пустое, щелкните его, а затем нажмите клавишу ввода. Вы должны ввести этот IP-адрес в своем браузере, чтобы открыть веб-IDE.

Установка сервера Minnow и примера кода

Эталонный пример Minnow Server не включен в ESP8266 IDE и должен быть установлен отдельно. На рисунке 1 показан пример сервера Minnow, уже установленного в каталоге ESP / ms. Minnow Server необходимо установить из командной строки Linux, но не беспокойтесь, если вы не использовали Linux. Вы можете просто скопировать и вставить подготовленные нами команды. На следующем рисунке показан снимок экрана с командами установки Minnow Server, вставляемыми в веб-оболочку Linux, доступную по адресу http:// vm-ip-address / webshell /.

щелкните, чтобы увеличить изображение

Рисунок 2:Команды установки Minnow Server, вставленные в веб-оболочку Linux. (Источник:Real Time Logic)

Когда вы вводите URL-адрес веб-оболочки в браузере, вам будет предложено войти в систему. Имя пользователя - sharkssl, пароль - SharkSSL.

В руководстве по ESP8266 на GitHub объясняется, как настроить виртуальную машину, установить все, скомпилировать пример веб-сервера и прошить прошивку. Следующее видео упрощает процесс, объясняя все шаг за шагом.

Видео 1:Как загрузить и установить пример Minnow Server, скомпилировать и загрузить код. (Источник:Real Time Logic)

Безопасный и небезопасный

Сервер Minnow может использоваться в безопасном или незащищенном режиме и автоматически использует безопасный режим (TLS) при использовании с ESP8266 IDE и SharkSSL. Использование веб-сервера с поддержкой TLS в устройстве добавляет дополнительную сложность, и конечный пользователь получает административную нагрузку по работе с сертификатами SSL. В приведенном выше видео мы показываем, как удалить ошибку сертификата, отображаемую в браузере, путем установки сертификата центра сертификации (CA) в браузере. Сертификат CA - это сертификат, который использовался для подписи сертификата в примере веб-сервера.

Встроенные устройства обычно устанавливаются в защищенных частных сетях, но многие клиенты по-прежнему требуют, чтобы соединения веб-сервера использовали TLS. Использование серверов с поддержкой TLS в частных сетях проблематично, поскольку ни один известный центр сертификации не будет подписывать IP-адреса или нестандартные (частные сети) имена. Один из вариантов - быть вашим собственным центром сертификации. Если вам интересно узнать об этом больше, ознакомьтесь с нашим руководством «Как действовать в качестве центра сертификации».

Как уже упоминалось выше, ESP8266 медленный. TLS очень интенсивно использует ЦП, и вы заметите, что для подключения и установления соединения требуется некоторое время. Пример одностраничного приложения, в котором для связи используются WebSockets, оптимизирован для устройств с ограниченным ЦП, но начальное асимметричное шифрование (рукопожатие TLS) по-прежнему требует времени, особенно с некоторыми браузерами, которые не следуют хорошим методам проектирования и открывают множество TCP-соединений, которые все требуется полное рукопожатие TLS. Чтобы узнать больше о проблеме с современными веб-браузерами и медленными микроконтроллерами, см. Наше руководство «Создание одностраничных приложений с помощью Minnow Server», в котором подробно рассматривается проблема.


Интернет вещей

  1. Как защитить облачные технологии?
  2. Как установить WordPress в Google Cloud
  3. Как сделать продукты и решения Интернета вещей безопасными
  4. Как определить, какой тип модуля IoT вам нужен
  5. Получить влажность / температуру из Интернета
  6. Raspberry Pi 4 как веб-сервер [Создать собственный веб-сайт]
  7. Введение во взлом встроенного оборудования устройств Интернета вещей
  8. Что такое звонки по WiFi? Как это работает?
  9. Как установить выравниватель док-станции
  10. Как автоматизация серверов достигла FANG