在以前版本的Arduino(限制性8位微控制器板)中,似乎实现HTTPS(不仅仅是HTTP)几乎是不可能的。但是较新版本的Arduino Due提供了32位ARM内核 - 请参阅规范here。
我试图检查几个网络库(libcurl,openssl,yaSSL),但我没有找到任何已经移植到Arduino Due的人。
OpenSSL可能太重而无法在此处理器上运行,但我相信yaSSL作为嵌入式库应该可以做到。
您是否有任何可用于在Arduino Due上触发HTTPS请求的库信息?
答案 0 :(得分:19)
不幸的是,评论太长了。
►没有开箱即用的解决方案
根据我收集的内容, Atmel SAM3X8E ARM Cortex-M3 CPU上运行的Web服务器没有简单的解决方案 可以直接输出HTTPS。 Texas Intstruments provides better options目前使用配备 Stellaris微控制器ARM Cortex-M3 CPU 的电路板。
►替代
有几种可用的选项可以呈现加密功能,根据这些选项可以布置和实现与中间设备通信的simple secure communication protocol,从而有助于快速应用程序开发和SSL。
此中间设备,例如现成的70美元Android智能手机,可让您的项目保持移动和连接,在指定端口上运行服务,该端口又与 Amazon SQS 进行通信。已经available。这可能听起来很难或很难,但比在Arduino上完全支持TLS 3的网络服务器的程序化基础要容易得多。如果有合适的动机,后者可能很容易,但如果只是想要一个快速实用的解决方案来解决自己的项目,那就不行了。
►加密库
►讨论
以下是让您入门的讨论列表:
这些库中的许多库仍然需要进行调整,但community专家可以相当快地帮助您。
祝你好运!如果您可以自由地将您的最终项目上传到github,那么您只是获得了感谢和关注者。答案 1 :(得分:6)
IMHO Arduino(包括DUE)是重度和/或加密的基于Web的通信的错误工具。我强烈建议在相同的尺寸和价格范围内寻找更合适的硬件。一旦你进入https,你就足够了,也想要真正的操作系统提供的许多其他东西。换句话说,我建议去找Raspi这样的东西。类似的大小和奖励,但方式更强大,尤其是它可以运行Linux。 - > HTTPS变得简单。
答案 2 :(得分:6)
对于arduino,https支持的一个大问题是处理器过载的危险,这可能会使项目变得不可行。
即使是像PolarSSL这样的嵌入式平台目标解决方案也会耗费太多内存并且使用过多的处理能力。请记住,即使在最简化的实现中,SSL支持也必须进行推广以便广泛采用,并且将包含您不需要的组件。还有一个问题是您将信任哪些证书颁发机构以及如何与证书撤销等事项进行沟通。
相反,我会寻求一种解决方案,而不是表面上的损坏,以满足您的需求。像CurveProtect这样的东西,它是CurveCP的实现。
当然,您的决定很大程度上取决于您想要做什么以及您希望花多少时间来解决问题。 PolarSSL的占用空间可小至30K(通常接近100K)。