ESP8266 - HTTPS Request
ESP8266 can act as a web client and make HTTPS requests to a web server. This web server could be a website, Web API, REST API, or Web service...
HTTP vs HTTPS
From a web client perspective, HTTPS is the same as HTTP, except that data is encrypted between the client and server. This makes HTTPS a secure protocol.
Hence, in order to understand HTTPS, we must first gain knowledge of HTTP and then discover how to encrypt data.
Learn about HTTP
- Check out the tutorial on ESP8266 - HTTP Request at BASE_URL/tutorials/esp8266/esp8266-http-request.
Learn how to encrypt data in HTTPS
Fortunately, it is simple to alter HTTP code to create HTTPS code. Depending on the board/shield, it requires only one line of code to be modified. To do this, locate the code lines specified in the table below and substitute them with the corresponding HTTPS code.
Board/Shield | HTTP Code | HTTPS Code |
---|---|---|
ESP8266 UNO WIFI Rev2 | client.connect(server, 80) | client.connectSSL(server, 443) |
ARDUINO NANO 33 IOT | client.connect(server, 80) | client.connectSSL(server, 443) |
ARDUINO MKR WIFI 1010 | client.connect(server, 80) | client.connectSSL(server, 443) |
ARDUINO MKR1000 WIFI | client.connect(server, 80) | client.connectSSL(server, 443) |
ESP8266 MKR VIDOR 4000 WiFi | client.connect(server, 80) | client.connectSSL(server, 443) |
※ NOTE THAT:
- For some boards/shields, if the library supports the WiFiSSLClient class, there is an additional way to modify HTTP code to make it HTTPS code. All you need to do is replace WiFiClient with WiFiSSLClient and port 80 with 443.
- In this tutorial, we will not be providing any code. This is because you can simply get the HTTP code from ESP8266 - HTTP request and then modify it according to the instructions above. By making these modifications, you can make HTTPS POST/GET requests or send data from ESP8266 via HTTPS POST/GET to a web server.