概述在3美元的WiFi设备上安装安全的嵌入式Web服务器的方法

嵌入式开发可能既困难又昂贵,但本文展示如何在30分钟内,在一种成本超低的设备上安装好安全的嵌入式web服务器,以便在wifi芯片上运行freertos和lwip tcp/ip堆栈。
为什么要使用安全(tls)的服务器?
浏览器已经开始将标准(http)服务器在浏览器栏中标记为“不受信任”(参见下面的图2),而安全服务器对最终用户来说将更加值得信赖。我将在本文下面的安全注意事项部分详细介绍。
wifi芯片esp8266和minnow服务器
1美元即可买到esp8266芯片,但我建议使用带usb接口的线路板。更新固件需要usb接口。如果没有板载usb,则需要额外的步骤,比如使用usb-ttl转换器。一个现成的带usb接口的esp8266线路板只需3美元可以购买到。
低成本的esp8266 wifi芯片非常适合学习之用,但速度很慢,特别是在执行诸如加密等cpu密集型任务时。在使用慢速芯片来处理cpu密集型任务时,确实需要慎重考虑你的设计。
esp8266以80 mhz的频率运行,这对嵌入式芯片来说还算可以,但代码执行速度比较慢,因为代码要通过spi内存执行。在超过资源受限微控制器的实际限制时,在此设备上运行启用tls的服务器可提供真正的唤醒呼叫,并提供对可在慢速微控制器上运行的内容的精彩介绍。选择合适的安全web服务器类型和web应用程序设计对于速度较慢的设备至关重要。
在本文中,我将解释如何在esp8266上编译和运行minnow服务器。minitow服务器和参考示例在github上可以找到。
我最近在embedded.com上发表了一篇关于minnow服务器的文章。该篇文章介绍了如何使用minnow服务器创建一个基于web的现代设备管理应用程序。本文还探讨了在使用tls时将websocket服务器与所谓的单页应用程序(spa)结合使用的好处。我建议读者先阅读一下这篇文章,因为我们将为esp8266准备和编译相同的示例代码。
入门
我们将使用由esp-open-rtos项目提供的esp8266 freertos/lwip环境,但不用担心,你不需要经历一遍复杂的esp-open-rtos设置过程。相反,我们将利用预先配置好且完全准备好使用的环境,这个环境就是一个易于使用的基于web的ide.
下载freertos/lwip esp8266 ide
导航到real time logic并下载我们已经准备好的esp8266 ide。这一ide专为教育目的而设计,包括一个预先配置好的esp-open-rtos,并绑定好了可简单使用的基于web的c语言源代码ide。ide需要vmware或virtualbox,我本人更喜欢vmware胜过virtualbox,因为我发现前者更容易使用。而且,请注意,vmware对于非商业用途是免费的。
esp8266 ide还包括一个嵌入式tls堆栈(sharkssl),minnow服务器在使用sharkssl编译时会自动使用tls。
您可以在没有esp8266线路板的情况下开始使用esp8266 ide,但无法上载和运行已编译过的代码。换句话说,您可以下载ide并按照本教程中的所有步骤完成操作,除了在esp8266上运行代码。
图1中的屏幕截图显示了虚拟机及与其相连的基于web的ide。请注意虚拟机是如何获得esp8266 usb连接的所有权。基于web的ide检测到此情况,便显示esp8266已连接,并准备使用新固件进行更新。
图1:基于web的ide连接到虚拟机的ip地址。
图1中的屏幕截图显示esp8266通过一块面包板连接到led。除非您想要控制本示例应用程序中使用的外部led,否则不需要额外的led或面包板。
请注意,你的vm的ip地址很可能与图1中的不同。确保在虚拟机窗口中单击ip地址。如果窗口为空白,请单击窗口,然后按enter键。您必须在浏览器中输入此ip地址才能打开web ide。
安装minnow server和示例代码
minnow server参考示例不包含在esp8266 ide中,必须单独安装。图1显示了已安装在“esp/ms”目录下的minnow server示例。必须从linux命令行安装minnow server,但如果您没有使用linux,也不要担心。您只需复制并粘贴我们准备好的命令即可。下图显示了粘贴到linux web shell中的minnow server安装命令的屏幕截图,可从http://vm-ip-address/webshell/获得。
图2:粘贴到linux web shell中的minnow server安装命令。
当您在浏览器中输入web shell的url时,系统将提示您登录。用户名为sharkssl,密码为sharkssl。
github上的esp8266教程解释了如何配置虚拟机、安装所有内容、编译web服务器示例,以及刷新固件等。以下视频通过逐步解释简化了操作过程。
安全与非安全
minnow server可以在安全或非安全模式下使用,而在与esp8266 ide和sharkssl一起使用时自动进入安全模式(tls)。在设备中使用支持tls的web服务器会增加额外的复杂性,最终用户也将要承担处理ssl证书的管理责任。在上面的视频中,我们展示如何通过在浏览器中安装认证机构(ca)证书来去除浏览器中显示的证书错误。ca证书用于在web服务器示例中对证书进行签名。
嵌入式设备通常安装在受保护的专用网络中,但许多客户仍要求使用tls进行web服务器连接。在专用网络上使用支持tls的服务器会有问题,因为没有众所周知的认证授权机构签署ip地址或非标准(专用网络)名称。一种选择是成为自己的证书颁发机构。如果有兴趣了解更多相关信息,请点击链接地址,查看教程:https://realtimelogic.com/blog/2014/05/how-to-act-as-a-certificate-authority-the-easy-way
如上所述,esp8266速度很慢。tls非常占用cpu,您会注意到需要一些时间才能建立连接。使用websockets进行通信的单页应用示例针对cpu资源有限的设备进行了优化,但初始非对称加密(tls握手)仍然需要时间,特别对于一些不遵循友好设计实践规则且打开许多tcp连接的浏览器,因为需要完整的tls握手。

3000元怎么买到性价比很高的单电相机
Ice Universe在Twitter上发表了声明,宣布了Exynos 1080的AnTuTu得分
数字货币市场从“迷茫”到“转型”,Aicoinarb积极应对量化困境
数字化的光伏电站是这个样子的
关于基因组分析的优势和特点
概述在3美元的WiFi设备上安装安全的嵌入式Web服务器的方法
iPhone12放心买,微信且能用
电池不平衡且稍微扩大对电池容量不匹配的影响
中国的AI芯片市场的现状和未来将是一个什么状况呢?
博泰·岚图FREE智能座舱交互系统设计解决方案入选“上海市设计100+”
铭瑄GT220变形金刚仅499元(黑盒散热器+2年质保)
关于校车信息控制系统的介绍分析
ARM将领先于嵌入式处理器市场
EMC是什么 EMC分类
果蔬机有用吗?消除食物隐患过健康生活
三星Galaxy手机或将配备AI助手NEON
OTL功率放大器输出电路特征
中国试图曲线救芯购买二手光刻机 实现12英寸国产芯片生产!
从医疗可穿戴设备到检测设备,三项创新设计
特斯拉回应苏州钣喷中心起火:情况属实,正在调查事故原因