HTTPS和SSL/TL加密的ESP32/ESP8266介绍

ESP32 关于HTTPS的使用 1、背景 最近因为公司项目的原因,接触到关于HTTPS方面的东西,新东西有必要记录一下。由于涉及公司的事,不公开。 对于公开的部分,会另外成文。 1.1 参考资料 注:网络上资源很多,关键还是要静下心来。 理解证书和证书链(三)https://blog.youkuaiyun.com/junwua/article/details/80506631 理解证书和证书链https://blog.csd... 阅读详情

在本教程中,我们将了解通常称为 HTTPS 的安全超文本传输协议,以及使用 ESP32 和 ESP8266 开发板的 SSL/TLS 加密。本指南包括对 HTTPS 和 SSL/TLS 加密的描述、使用它的原因、SSL/TLS 加密的工作原理、使用 HTTPS 通过网络通信以及最终使用 ESP32/ESP8266 开发板生成 HTTPS 请求。让我们开始吧!

HTTPS协议介绍

与负责在客户端和服务器之间交换数据的主要协议 HTTP 不同,HTTPS 是 HTTP 的安全替代方案。在此协议中,使用 TLS(传输层安全性)或安全套接字层 (SSL) 对通信进行加密。这意味着 HTTPS 等同于添加了 TLS/SSL 安全层的 HTTP。

HTPPS 被称为安全超文本传输协议,它通过网络提供安全通信,并在访问互联网时被广泛使用。此通信协议中的消息使用以前称为安全套接字层 (SSL) 的传输层安全性 (TLS) 加密。从根本上说,它在传输数据的同时增强了数据的安全性,使用HTTPS进行加密。这对于需要登录详细信息、手机号码、地址和银行帐号的网站来说非常重要。

为什么 HTTPS 很重要?

  • HTTPS 为需要在服务器和网络浏览器之间发送敏感数据的用户提供安全和信任

  • HTTPS 使用 SSL 证书确保数据隐私和完整性以及正确识别

  • 提供针对不同攻击的保护,例如在 HTTP 情况下可以轻松启动的中间人 (MitM) 攻击。

SSL/TLS 加密

如前所述,HTTPS 使用 TLS 加密协议来保护通信。传输层安全性 (TLS) 以前称为 SSL,是当今用于 Web 通信的最广泛使用的安全加密协议。

TLS 使用非对称公钥基础设施来保护通信。非对称安全系统由两个不同的非对称密钥组成,用于加密通信。这些被称为:

  1. 公钥:这是任何以安全方式使用服务器的人都可以访问的密钥。私钥能够解密由公钥加密的信息。

  1. 私钥:这是仅供网站所有者使用的密钥,因此称为私钥。它能够解密由相应的公钥加密的信息。

下图演示了公钥和私钥如何协同工作以提供非对称密钥加密。

非对称密钥加密

发生的事情是,当客户端联系服务器时,服务器反过来将公钥传输给客户端。这是通过服务器的 SSL 证书完成的。现在客户端将加密信息与公钥一起传输到服务器。拥有私钥的服务器能够解密信息并成功访问它。

另一方面,对称密钥加密使用单个“秘密密钥”进行加密和解密。在这种情况下,服务器和客户端都需要拥有相同的密钥。因此,由于用户必须共享密钥这一事实,使用这种类型的密钥加密算法是不利的。

对称密钥加密

HTTPS 通信

让我们看看客户端服务器通信是如何通过 HTTPS 协议进行的。涉及许多步骤。让我们一一列出。

  1. 首先,客户端通过连接服务器开始通信。

  1. 此时,当客户端发起连接时,服务器将SSL证书传送给客户端。SSL 证书包含公钥。

  1. 客户端现在检查 SSL 证书是否有效。

  1. 如果证书是真实的,则客户端会生成一个会话密钥。这个密钥很重要,因为它负责加密服务器和客户端之间的通信。

  1. 之前由服务器发送的公钥现在被客户端用来加密会话密钥。加密的会话密钥现在被发送到服务器。

  1. 当服务器获得加密的会话密钥时,它使用它拥有的私钥来解密信息。请记住,服务器拥有能够解密信息的相应私钥。

  1. 现在生成另一个会话密钥,用于保持客户端和服务器之间的加密通信。

下图说明了这些要点:

HTTPS 通信概述

SSL认证

SSL 证书在 HTTPS 客户端服务器通信中非常重要。如前所述,每当客户端请求会话时,服务器都会通过发送 SSL 证书进行响应。然后,浏览器会检查此 SSL 证书以确定其有效性。每个 SSL 证书都由适当的证书颁发机构 (CA) 颁发,例如 LetsEncrypt、GeoTrust、Comodo 等。这些机构存储、签署和颁发数字安全套接字层证书。他们负责提供证书的有效性证明以及证书所有者的身份。

每当 CA 提供证书时,它都包含由权威机构签名的根证书。这是非常重要的,因为当浏览器检查 SSL 证书的有效性时,它实际上是在检查它是否包含受信任根证书数据库中的根证书。如果是,则会在浏览器栏上看到一个锁定图标。

需要注意的重要一点是不能使用已过期的 SSL 证书。

自签名 SSL 证书

SSL 证书也可以是自签名的并且可以免费使用。这些是不是由任何证书颁发机构 (CA) 颁发的公钥证书。换句话说,这些不是由任何受信任的第三方 CA 颁发的。但它们可以用于内部网络网站。

虽然自签名证书授予与证书颁发机构颁发的证书相同级别的加密,但是浏览器在检查证书的有效性时并不信任服务器。因此,该网站会显示一条警告消息“您的连接不是私密的。” 这是因为浏览器无法识别其所有者。浏览器有一个证书,但是是自签名的,因此没有经过验证。简单来说,这种情况下客户端和服务器之间的通信会被加密,但其所属网站的身份并不确定。

我们可以在我们的 DIY IoT 项目或本地网络中使用自签名证书。但是,如果您的项目需要在本地主机之外或远程任何地方访问,您应该使用来自受信任的证书颁发机构的证书。

Arduino IDE 中的 ESP32 和 ESP8266 HTTPS 请求和Web服务器

介绍完 HTTPS 通信协议后,让我们向您展示如何在 Arduino IDE 中使用 ESP32 和 ESP8266 发出 HTTPS 请求。就像 HTTP 一样,HTTPS 请求在 Arduino IDE 中以类似的方式工作。

ESP32

在适用于 ESP32 的 Arduino IDE 中有几个使用 HTTPS 请求的示例。其中一些包括:

  • File > Examples > WiFiClientSecure

  • File > Examples > HTTPClient > BasicHttpsClient

一些示例使用用于 HTTPS 的 WiFiClientSecure.h 库,而不是用于 HTTP 的 WiFiClient.h 库。端口更改为 443,主机 URL 现在为“https”。其余代码与生成 HTTP 请求的代码类似。然而,在 HTTPS 中,客户端服务器通信是加密的。

要使用 ESP32 创建 HTTPS Web 服务器,可以使用esp32_https_server 库。这个 HTTPS 服务器库可以与 ESP32 Arduino Core 一起使用,同时支持 HTTP 和 HTTPS。除了这个库,在 Arduino IDE 中没有太多支持使用 ESP32 构建 HTTPS 网络服务器。

ESP8266

Arduino IDE 中有几个使用 HTTPS 请求的 ESP8266 示例。其中一些包括:

  • File > Examples > ESP8266HTTPClient > BasicHttpsClient (This uses the ESP8266HTTPClient.h library)

  • File > Examples > ESP8266WiFi > HTTPSRequest (This uses the WiFiClientSecure.h library)

这里需要注意的重要一点是,为了使用 ESP8266 生成成功的 HTTPS 请求,请确保证书没有过期。

使用 ESP8266 构建 HTTPS Web 服务器有点困难,而且支持它的可用库也不多。

不过,ESP8266WebServerSecure.h 库用于使用 ESP8266 创建基本的 HTTPS 服务器。

注:以上文章由IC先生www.mrchip.cn编辑整理发布,请勿转载。

ESP32学习笔记:HTTPS Request模式 在上一篇http的基础上增加了网络证书,使用了https模式,虽然调试过程有点坎坷,但至少还算比较顺利,在实际应用过程中,如果考虑到通信安全性,还是比较实用的一种模式。 阅读详情

相关推荐

从单片机到ROS2:机器人嵌入式物联网自学路线全攻略

嵌入式开发与物联网技术正加速渗透到机器人、智能硬件等众多领域,成为工程实践中的基础能力。对于初学者而言,学习路径往往比学习本身更重要。从单片机入手理解寄存器、中断与硬件控制原理,再过渡到STM32、嵌入式Linux,进而掌握ROS2分布式通信框架,是一条被广泛验证的成长路线。与此同时,机器人测试、传感器标定、数据采集与云平台接入等工程实践能力,也是决定项目能否落地交付的关键。本文围绕自学和技术提升展开,梳理了从基础电路到ROS2、物联网、端侧AI的完整知识图谱,并结合环境搭建、代码示例、常见排错经验,帮助读

weixin_34332905的博客 375

ESP32学习之HTTPS 请求

ESP32学习之HTTPS 请求 ​ 在ESP32的官方例程中是提供有关https request 例程,具体位置在esp-idf中examples下protocols\http_server\simple文件夹中,该例程简单演示了如何使用esp32作为http客户端请求服务器。 ​ https request的整个过程是建立在tcp协议上的,主要通过访问服务器域名的形式来从服务器中获取数据。官方例程主要是通过get请求获取www.howsmyssl.com获取数据,具体流程如下: void app_mai

qq_35622135的博客 1万+

ESP32通过https+json获取一言

一言地址:https://hitokoto.cn/ 简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。 或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。 感觉通过esp32获取一言并没有什么意义,纯属是我个人兴趣。 效果如下: 一言提供了api,我们只需请求api地址就能获取到数据,一言可以返回返回格式化...

u014091490的博客 4016

ESP8266访问https地址,ESP32

ESP8266访问https地址,ESP32访问https地址

CanEve的博客 2923

ESP32 HTTPS客户端POST请求(跳过证书验证)

ESP32 HTTPS客户端POST请求

qq_17833651的博客 5414

ESP8266开发之旅 进阶篇⑪ 深入了解 Esp8266 Https访问

目前为止,我们讲解的很多例子都是使用 ==HTTP== 请求 。 但是涉及到一些 ==重要的用户数据== 的时候,我们基本上都是使用 ==HTTPS== 请求。 这一节,我们将讲解ESP8266上的 HTTPS请求。

单片机菜鸟哥的博客 4万+

ESP32 SSL/TLS 双向认证实践

ESP32 SSL/TLS 双向认证实践

ESP 技术分享,推动万物互联 6698

ESP8266-Arduino网络编程实例-HTTPS客户端数据请求

超文本传输协议安全 (HTTPS) 是 HTTP的安全版本,HTTP 是用于在 Web 浏览器和网站之间发送数据的主要协议。HTTPS 经过加密,以提高数据传输的安全性。当用户传输敏感数据(例如通过登录银行账户、电子邮件服务或健康保险提供商)时,这一点尤其重要。从技术上来讲,HTTPS 并不是独立于 HTTP 的协议。它只是在 HTTP 协议的基础上使用 TLS/SSL 加密。HTTPS 基于 TLS/SSL 证书的传输而发生,该证书验证特定提供商就是他们声称的身份。

视觉与物联智能 2265

【ESP32S3】ESP32S3使用HTTPS通讯笔记

在ESP32S3经常需要实现HTTP或者HTTPS的POST/GET/PUT/DELETE请求,正式上线的产品基本上采用HTTPS的通信方式。

weixin_41458318的博客 2309

esp8266 发起https 请求

esp8266 发起https 请求,请求 https 的api 等等,整个项目工程

R语言:基于Spatstat包的单变量和双变量平面Ripley‘s K函数分析

因为网上查找得到的R语言K函数分析的资料很少,Spatstat包的介绍也很少,所以抛砖引玉。本文简单介绍了使用R语言spatstat包的Kest,Kcross(Lcross)和Kinhom方法进行了单变量和双变量平面Ripley's K函数分析的方法及代码,希望有所帮助。

hsdcmax的博客 1万+

esp8266 发送 https 请求

代码: #include <ArduinoJson.h> #include <ESP8266WiFi.h> //Include the SSL client #include <WiFiClientSecure.h> char ssid[] = "HelloWifi"; // your network SSID (nam

abc 1万+

实战游戏项目管理1-规划篇

1、前言 做研发管理10多年,进游戏行业8年,经验下来项目管理就是一门技术,结合不同行业不同项目加以不同管理方法,但原理基本一样,这里总结下游戏项目的管理一些实操方法 一般游戏确定立项前都需要做,项目预研产出一个游戏Demo,通过公司的立项评审,这个过程的项目管理相对简单一般由制作人或其他项目经理兼任,只有控制好总体时间与成本就好,这里按立项后开始讲。 2、游戏项目规划 ...

pengdali的专栏 2万+

arduino使用esp8266开发板使用https方式读取哔哩哔哩网页粉丝数等

使用esp8266获取https网页数据

weixin_43794311的博客 1508

TC3xx芯片SPI多从机通信避坑指南:AUTOSAR框架下的DMA配置与片选切换

本文针对英飞凌TC3xx芯片在AUTOSAR框架下实现SPI多从机通信的实战难题,提供了详尽的避坑指南。重点解析了如何利用硬件支持的16路片选(SLSO)灵活切换,在AUTOSAR中正确配置不同时序的从设备,并深入探讨了异步模式下DMA的启用条件与关键配置细节,帮助开发者规避通信失败风险,提升系统可靠性。

nn3456的博客 153

游戏封包抓取实战:雷电模拟器+ProxyDroid+查尔斯3.93+WPE全流程解析

本文详细解析了使用雷电模拟器、ProxyDroid、查尔斯3.93和WPE进行游戏封包抓取的全流程实战。通过环境搭建、代理配置与工具协同,手把手教你抓取HTTP/HTTPS及原始Socket数据,涵盖从流量转向、证书安装到数据分析和常见问题排查,是学习游戏网络协议分析与安全测试的实用指南。

u8v9w0x1y的博客 445

Arduino笔记-ESP8266模块实现https远程关熄灯功能

目录 基本概念 演示及代码 常见问题 基本概念 很有意思的功能,这里使用的是这样的ESP8266模块! 其中各个编号对应的引脚为: 13=D7 16=D0 15=D8 14=D5 12=D6 4=D2 3=D9 2=D4 1=D10 0=D3 Arduino IDE要下载好ESP8266的包,并且使用: 这套开发板! 打开范例 ...

IT1995的博客 7473

FPGA实战:手把手教你实现VESA DSC编码(附Verilog代码解析)

本文详细介绍了如何使用FPGA实现VESA DSC编码器,包括核心架构设计、Verilog代码实现与优化技巧。通过流水线设计、色彩空间转换和预测编码等关键技术,帮助开发者掌握工业级DSC编码器的开发流程,并提供实用的调试与性能优化方法。

weixin_29165725的博客 404

esp32-关于https的测试环境及ota测试

esp32 验证https的方式

fatCatLA的博客 727

SMOKE 3D:从 Python 到 C++ 实现车辆与行人单目 3D 视觉识别在 RK3588 上的深度部署

SMOKE的网络结构通常基于高性能的骨干网络(如DLA-34,您使用的模型就是基于此),通过编码器-解码器架构来提取特征。输入:RGB图像(本项目为骨干网络:用于特征提取。检测头热力图分支:预测关键点热力图。通常在热力图上进行NMS来找到局部最大值,即潜在的关键点位置。回归分支:对于每个关键点位置,预测上述的8维3D属性向量。分类分支:预测每个关键点对应的物体类别。置信度分支:预测每个关键点的置信度。本教程详细介绍了SMOKE单目3D目标检测模型在RK3588上的部署。我们从SMOKE的。

LXY_LOVE36的博客 439

浅聊开关电源6:大学生电赛(电源类)之LCL并网滤波器设计(PCB设计,STM32F4xx程序与Simulink仿真)

关于LCL并网滤波器设计的一些小分享

xjtuymh的博客 3654

ESP32日历(水墨屏黄历,https请求解析,自动休眠唤醒,代码开源!)

esp32实现自动更新赛博黄历!代码开源自取哈!

weixin_56440631的博客 3013

水很深的深度学习(四): 卷积神经网络CNN

深度学习-CNN,卷积神经网络的概念 上世纪60年代,Hubel等人通过对猫视觉皮层细胞的研究,提出了感受野这个概念,到80年代,Fukushima在感受野概念的基础之上提出了神经认知机的概念,可以看作是卷积神经网络的第一个实现网络,神经认知机将一个视觉模式分解成许多子模式(特征),然后进入分层递阶式相连的特征平面进行处理

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 3624

如何对 ESP32 设备的明文固件使用固定秘钥进行手动加密

ESP32 量产加密烧录固件流程

ESP 技术分享,推动万物互联 7309

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ESP-C3入门12. HTTPS请求、堆内存使用及JSON处理

本文主要内容接上节《创建最基本http请求》的文章。 ESP32 IDF创建http请求的基本流程:在https请求中,有一些进行一些额外的步骤,包括 证书的验证和捆绑。 首先要获取远程服务器的证书; 如果ESP32 IDF无法验证证书,则需要使用esp_http_client_set_cert_info函数将服务器证书的SHA-1指纹添加到ESP32 IDF的证书信任列表中。 如果ESP32 IDF无法连接到远程服务器,则可能需要设置代理服务器。证书已经内置在ESP32的固件中,无需单独管理证书,可以直接

猿来这样-谢厂节的博客 2019

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ESP8266基于HTTPS/HTTP进行OTA升级

前言     本文基于乐鑫IDF rtos3.3 SDK进行试验,验证ESP8266通过HTTP/HTTPS进行OTA升级的功能。过程中有借鉴网上诸多资料,难以列出,如有介意联系删除。 目录前言开发环境一、通过 HTTP 进行 OTA1.1、配置8266工程与烧录1.2、搭建 HTTP 服务1.3、OTA升级二、通过 HTTPS 进行 OTA2.1、搭建 HTTPS 服务2.2、配置8266工程与烧录2.3、OTA升级 开发环境 系统 ubuntu 20.04 乐鑫IDF rtos3.3 openss

SauryN的博客 5528
上一篇: IC先生网:混合拓扑的工作原理、结构类型及其应用
下一篇: 关于TMC2209步进电机驱动模块 – SilentStepStick的知识概况
IC先生商城
博客等级 码龄5年 109粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值