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

这篇具有很好参考价值的文章主要介绍了HTTPS和SSL/TL加密的ESP32/ESP8266介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

HTTPS协议介绍

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

esp8266 ssl,https,ssl,服务器,Powered by 金山文档

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

为什么 HTTPS 很重要?

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

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

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

SSL/TLS 加密

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

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

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

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

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

esp8266 ssl,https,ssl,服务器,Powered by 金山文档

非对称密钥加密

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

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

esp8266 ssl,https,ssl,服务器,Powered by 金山文档

对称密钥加密

HTTPS 通信

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

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

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

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

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

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

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

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

下图说明了这些要点:

esp8266 ssl,https,ssl,服务器,Powered by 金山文档

HTTPS 通信概述

SSL认证

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

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

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

esp8266 ssl,https,ssl,服务器,Powered by 金山文档

自签名 SSL 证书

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

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

esp8266 ssl,https,ssl,服务器,Powered by 金山文档

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

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

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

esp8266 ssl,https,ssl,服务器,Powered by 金山文档

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编辑整理发布,请勿转载。文章来源地址https://www.toymoban.com/news/detail-618079.html

到了这里,关于HTTPS和SSL/TL加密的ESP32/ESP8266介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTPS加密协议详解:TLS/SSL握手过程

    基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程。 (1).client_hello 客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息,相关信息如下: 支持的最高TSL协议版本version,从低到高依次 SS

    2024年02月09日
    浏览(41)
  • ESP32 OTA升级之https ota详解

    本文以 ESP32 官方demo例程 native_ota_example 为例,详细阐述如何采用https实现esp32的ota升级。 第一章节,为本文的前言部分,对文章内容进行大体概述; 第二章节,主要描述了如何在本地将demo例程跑起来,并附带了关于使用demo例程中遇到的相关报错的具体解决措施; 第三章节,

    2024年02月14日
    浏览(40)
  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(45)
  • STM32 ESP8266模块的探索&AT指令介绍

    这是本文的配套资料,最终工程请参考 新_ESP8266资料stm32f103成功移植的项目 【免费】stm32f103c8t6esp8266资料资源-CSDN文库 我使用的是ai-thinker的esp8266-01s,以下为产品规格书 引脚定义:   依据引脚定义,GND接GND,VCC接3.3V,TX接USB转TTL的Rx, Rx 接USB转TTL的RX,之后尝试多次,都只

    2024年04月23日
    浏览(43)
  • ESP32 HTTPS客户端POST请求(跳过证书验证)

    本文例程为ESP32 HTTPS客户端POST请求 只有HTTPS请求部分,联网部分省略默。。。 乐鑫ESP-IDF API参考文档 函数 esp_http_client_init 结构体 constesp_http_client_config_t 此结构体用于配置HTTP/HTTPS参数 设置HTTP/HTTPS请求方法 此接口可以手动设置HTTP请求方式(可以覆盖配置结构体的设置) 设置

    2024年02月05日
    浏览(93)
  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS的缺点 && HTTP如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(49)
  • ESP32 通过HTTPS进行OTA更新固件(在platform上进行编码)

    OTA:Over-the-Air Technology,字面意思理解为:空中下载技术。 OTA 在线升级:通过OTA的方式实现产品软件更新的一种方式。 简单说来,就是通过 无线方式 对esp32进行固件更新,而不是通过传 统的连接数据线的方式 更新固件。 写本篇文章的目的就是想向大家介绍一种ESP32 OTA更新

    2024年02月02日
    浏览(44)
  • 使用巴法云实现微信消息推送(Arduino,ESP32,HTTPClient HTTPS GET、POST)——文章最后有点补充更新

    首先,这篇不是广告,是我在玩ESP32过程中的一则笔记。 我在玩ESP32的过程中,想把一些信息推送到手机上去。说起来有很多种方式,把ESP32接入到各种云平台上去,然后都可以实现向手机推送消息。 但是我想最好能实现微信消息推送,毕竟微信大家用得比较多,容易接收。

    2024年01月19日
    浏览(141)
  • STM32+esp8266,让你的STM32开发板连接网络-----esp8266

    分享一下,STM32开发板连接网络的第一种方法:连接esp8266。 esp8266与STM32利用串口通信连接,esp8266连接网络,把收到的数据通过串口的方式传输给STM32,之后STM32接收到消息做出对应的反应。 使用到的开发板如图:esp-12和正点原子stm32f103zet6. 首先,我们先掌握一下什么事串口通

    2024年02月02日
    浏览(45)
  • Arduino离线安装esp32/esp8266

    使用本教程所示的安装方法,双击安装包的傻瓜式操作,不用进入文件夹修改,不用添加网站地址,免去网络带来的烦恼。安装完成后直接使用。 官网地址:Software | Arduino 打开链接后如图  点击红色框内以后跳转到此界面 再次选择红框后下载 打开安装包一直下一步就好 打

    2023年04月13日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包