ESP8266 – WiFiServerSecure库 – setClientTrustAnchor

位置导航: ESP8266库 / WiFiServerSecure库 / 本页

说明

ESP8266建立的HTTPS服务器可以要求客户端提供证书以验证客户端身份。如果客户端无法提供证明身份的证书信息,ESP8266服务器会拒绝客户端访问。我们可以使用WiFiServerSecure库的setClientTrustAnchor函数来实现这一操作。

语法

server.setClientTrustAnchor(cert)

参数

– cert: CA证书

返回值

示例程序

请务必注意:本示例程序所使用的证书和密钥只能用于测试使用。您在自己搭建ESP8266物联网项目时,需要自行建立 证书密钥而不要使用本示例中的证书和密钥。

测试使用本示例程序需要使用wget指令。建议您在测试本示例程序以前先准备好一台Linux系统电脑。

接下来请点击以下链接,将用于客户端身份认证的证书和密钥文件下载并解压缩到您的Linux电脑中。

client_files

当您将以下示例程序中的WiFi连接信息修改并且将本示例程序上传ESP8266开发板后,开发板随即会自动连接WiFi。WiFi连接成功后,您将可以从串口监视器获取当前ESP8266开发板的IP地址。此时,ESP8266已经成功建立了支持HTTPS协议的网络服务器。您可以通过ESP8266的IP地址来访问该网络服务器。

假设您的ESP8266开发板IP地址是192.168.0.111。接下来请使用Linux电脑的终端应用输入以下指令:

wget –no-check-certificate –certificate=client1_cer.pem –private-key=client1_key.pem https://192.168.0.111

以上指令中client1_cer.pem和client1_key.pem 分别是您刚下载的客户端证书文件以及客户端私钥文件。这两个文件分别是客户端证书以及客户端私钥。他们的作用是为ESP8266服务器提供身份验证。

以下截屏是该指令的运行结果。我们可以看到,客户端成功的使用了下载的证书文件和私钥文件实现了与ESP8266服务器的网络通讯。

ESP8266-HTTPS-Server-Test
ESP8266-HTTPS-Server-Test

另外,我们从串口监视器可以看到,ESP8266服务器成功的响应了客户端请求。

ESP8266-HTTPS-Server-Test-2
ESP8266-HTTPS-Server-Test-2

以下示例程序中我们首先使用语句 BearSSL::X509List *serverTrustedCert = new BearSSL::X509List(ca_cert);建立X509List对象用于处理及储存受信CA证书。接下来我们使用了语句server.setClientTrustAnchor(serverTrustedCert);设置受信CA证书以验证客户端身份。

位置导航: ESP8266库 / WiFiServerSecure库 / 本页