Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Tecnología de Internet de las cosas

Cómo instalar un servidor web integrado seguro en un dispositivo WiFi de $ 3

Comenzar con el desarrollo integrado puede ser difícil y costoso, pero en este artículo le mostraré cómo activar FreeRTOS y la pila lwIP TCP / IP en un chip WiFi con un servidor web integrado seguro en menos de 30 minutos en un nivel súper bajo. dispositivo de costo.

¿Por qué utilizar un servidor seguro (TLS) habilitado?

Los navegadores han comenzado a marcar los servidores estándar (HTTP) como "No confiables" en la barra del navegador (consulte la Figura 2 a continuación), y un servidor seguro parecerá más confiable para el cliente final. Entraré en esto en detalle en la sección Consideraciones de seguridad a continuación.

El chip WiFi ESP8266 y el servidor Minnow

Puede obtener ESP8266 por tan solo $ 1, pero recomiendo usar una placa que incluya USB. El USB es necesario para actualizar el firmware. Se necesitaría un paso adicional que incluye el uso de un convertidor de USB a TTL sin USB integrado. Se puede comprar una placa ESP8266 con USB lista para usar por tan solo $ 3.

El chip WiFi ESP8266 de bajo costo es excelente para fines de aprendizaje, pero es lento, especialmente con tareas intensivas de la CPU, como realizar el cifrado. Realmente necesita pensar en el diseño cuando usa un chip lento con tareas intensivas de CPU.

El ESP8266 se ejecuta a 80 Mhz, lo que es bueno para un chip integrado, pero la ejecución del código es muy lenta con el código ejecutado a través de la memoria SPI. La ejecución de un servidor habilitado para TLS en este dispositivo proporciona una verdadera llamada de atención cuando se trata de limitaciones prácticas con microcontroladores con recursos limitados y proporciona una gran introducción a lo que es posible ejecutar en un microcontrolador lento. El tipo de servidor web seguro elegido y el diseño de la aplicación web se vuelven críticos para los dispositivos lentos.

En este artículo, explicaré cómo compilar y ejecutar Minnow Server en un ESP8266. El servidor Minnow y el ejemplo de referencia están disponibles en GitHub.

Recientemente publiqué un artículo sobre el servidor Minnow aquí en embedded.com. El artículo explica cómo utilizar Minnow Server para crear aplicaciones modernas de gestión de dispositivos basadas en web. El artículo también analiza los beneficios de usar un servidor WebSocket con una aplicación de página única (SPA) cuando se usa TLS. Recomiendo leer este artículo ya que prepararemos y compilaremos el mismo código de ejemplo para el ESP8266.

Introducción

Usaremos el entorno ESP8266 FreeRTOS / lwIP proporcionado por el proyecto esp-open-rtos, pero no se preocupe, no es necesario que realice la configuración compleja de esp-open-rtos. En su lugar, utilizaremos un entorno preconfigurado y completamente listo para usar con un IDE basado en web fácil de usar.

Descarga FreeRTOS / lwIP ESP8266 IDE

Navegue a Real Time Logic y descargue el IDE ESP8266 que hemos preparado. El IDE, que está diseñado con fines educativos, incluye un esp-open-rtos preconfigurado junto con un IDE de código fuente C basado en web fácil de usar. El IDE requiere VmWare o VirtualBox. Prefiero VmWare sobre VirtualBox, ya que lo encuentro más fácil de usar. Tenga en cuenta que VmWare es gratuito para uso no comercial.

El IDE ESP8266 también incluye una pila TLS incorporada (SharkSSL), y el servidor Minnow usa TLS automáticamente cuando se compila con SharkSSL.

Puede comenzar a usar el IDE ESP8266 sin la placa ESP8266, pero no puede cargar y ejecutar el código compilado. En otras palabras, puede descargar el IDE y seguir todos los pasos de este tutorial excepto para ejecutar el código en el ESP8266.

La captura de pantalla de la Figura 1 a continuación muestra la máquina virtual y el IDE basado en web conectados a la máquina virtual. Observe cómo la máquina virtual se ha hecho cargo de la conexión USB ESP8266. El IDE basado en web detecta esto y muestra el ESP8266 como conectado y listo para actualizarse con un nuevo firmware.

haz clic para ampliar la imagen

Figura 1:IDE basado en web conectado a la dirección IP de la máquina virtual. (Fuente:Real Time Logic)

La captura de pantalla en la Figura 1 muestra el ESP8266 conectado a LED a través de una placa de pruebas. No necesita los LEDS adicionales o la placa de pruebas a menos que desee controlar los LEDS externos utilizados por la aplicación de ejemplo.

Tenga en cuenta que la dirección IP de su VM probablemente será diferente a la de la Figura 1. Asegúrese de hacer clic en la ventana de la máquina virtual para obtener la dirección IP. Si la ventana está en blanco, haga clic en la ventana y luego presione la tecla Intro. Debe ingresar esta dirección IP en su navegador para abrir el IDE web.

Instalación del servidor Minnow y el código de ejemplo

El ejemplo de referencia de Minnow Server no está incluido en el IDE ESP8266 y debe instalarse por separado. La Figura 1 muestra el ejemplo de Minnow Server ya instalado en el directorio 'ESP / ms'. El servidor Minnow debe instalarse desde la línea de comandos de Linux, pero no se preocupe si no ha utilizado Linux. Simplemente puede copiar y pegar los comandos que hemos preparado. La siguiente figura muestra una captura de pantalla de los comandos de instalación de Minnow Server que se pegan en el shell web de Linux disponible en http:// vm-ip-address / webshell /.

haz clic para ampliar la imagen

Figura 2:Comandos de instalación de Minnow Server pegados en el shell web de Linux. (Fuente:Real Time Logic)

Cuando ingrese la URL al shell web en su navegador, se le pedirá que inicie sesión. El nombre de usuario es sharkssl y la contraseña es SharkSSL.

El tutorial ESP8266 en GitHub explica cómo configurar la máquina virtual, instalar todo, compilar el ejemplo del servidor web y actualizar el firmware. El siguiente video simplifica el proceso al explicar todo paso a paso.

Video 1:Cómo descargar e instalar el ejemplo de Minnow Server, compilar y cargar el código. (Fuente:Real Time Logic)

Seguro frente a no seguro

El servidor Minnow se puede usar en modo seguro o no seguro y usa automáticamente el modo seguro (TLS) cuando se usa con ESP8266 IDE y SharkSSL. El uso de un servidor web habilitado para TLS en un dispositivo agrega complejidad adicional y el usuario final recibe la carga administrativa de lidiar con los certificados SSL. En el video anterior, mostramos cómo eliminar el error de certificado presentado en el navegador instalando el certificado de la Autoridad de certificación (CA) en el navegador. El certificado CA es el certificado que se utilizó para firmar el certificado en el ejemplo del servidor web.

Los dispositivos integrados generalmente se instalan en redes privadas protegidas, pero muchos clientes aún exigen que las conexiones del servidor web usen TLS. El uso de servidores habilitados para TLS en redes privadas es problemático ya que ninguna autoridad certificadora conocida firmará direcciones IP o nombres no estándar (red privada). Una opción es ser su propia autoridad certificadora. Si está interesado en obtener más información sobre esto, consulte nuestro tutorial Cómo actuar como autoridad certificadora.

Como se mencionó anteriormente, el ESP8266 es lento. TLS consume mucha CPU y notará que se necesita algo de tiempo para conectarse y establecer una conexión. El ejemplo de la aplicación de página única, que utiliza WebSockets para la comunicación, está optimizado para dispositivos con restricciones de CPU, pero el cifrado asimétrico inicial (protocolo de enlace TLS) todavía lleva tiempo, especialmente con algunos navegadores que no siguen las buenas prácticas de diseño y abren muchas conexiones TCP que todos requieren un apretón de manos TLS completo. Para obtener más información sobre el problema con los navegadores web modernos y los microcontroladores lentos, consulte nuestro tutorial Creación de aplicaciones de una sola página con el servidor Minnow, que analiza el problema en detalle.


Tecnología de Internet de las cosas

  1. ¿Cómo proteger la tecnología en la nube?
  2. Cómo instalar WordPress en Google Cloud
  3. Cómo hacer que los productos y soluciones de IoT sean seguros
  4. Cómo identificar qué tipo de módulo de IoT necesita
  5. Cómo las pruebas fuzz fortalecen la seguridad de los dispositivos de IoT
  6. Obtener humedad / temperatura de la Web
  7. Raspberry Pi 4 como servidor web [Crear un sitio web propio]
  8. Una introducción a la piratería de hardware integrado en dispositivos IoT
  9. ¿Qué son las llamadas WiFi? ¿Cómo funciona?
  10. Cómo instalar un nivelador de muelle
  11. Cómo la automatización de servidores llegó a FANG