Skip to content

HTTPS_OTA_Update.ino example fail and return esp-tls-mbedtls: mbedtls_ssl_handshake returned -0x2700 #10728

@duyle1402

Description

@duyle1402

Board

ESP 32 Dev Module

Device Description

Custom Board

Hardware Configuration

None

Version

latest master (checkout manually)

IDE Name

Arduino IDE

Operating System

Window 11

Flash frequency

80 Mhz

PSRAM enabled

no

Upload speed

115200

Description

I test this code in example with github archive release in https://raw.githubusercontent.com/duyle1402/TestOTAWithGithub/main/Baremetal.ino.bin, and cant work https://github.com/espressif/arduino-esp32/blob/master/libraries/Update/examples/HTTPS_OTA_Update/HTTPS_OTA_Update.ino

Sketch

// This sketch provide the functionality of OTA Firmware Upgrade
#include "WiFi.h"
#include "HttpsOTAUpdate.h"
// This sketch shows how to implement HTTPS firmware update Over The Air.
// Please provide your WiFi credentials, https URL to the firmware image and the server certificate.

static const char *ssid = "mywifi";          // your network SSID (name of wifi network)
static const char *password = "mypassword";  // your network password

static const char *url = "https://raw.githubusercontent.com/duyle1402/TestOTAWithGithub/main/Baremetal.ino.bin";  //state url of your firmware image

static const char *server_certificate = "-----BEGIN CERTIFICATE-----\n"
                                        "MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/\n"
                                        "MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n"
                                        "DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow\n"
                                        "SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT\n"
                                        "GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC\n"
                                        "AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF\n"
                                        "q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8\n"
                                        "SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0\n"
                                        "Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA\n"
                                        "a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj\n"
                                        "/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T\n"
                                        "AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG\n"
                                        "CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv\n"
                                        "bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k\n"
                                        "c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw\n"
                                        "VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC\n"
                                        "ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz\n"
                                        "MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu\n"
                                        "Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF\n"
                                        "AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo\n"
                                        "uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/\n"
                                        "wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu\n"
                                        "X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG\n"
                                        "PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6\n"
                                        "KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==\n"
                                        "-----END CERTIFICATE-----";

static HttpsOTAStatus_t otastatus;

void HttpEvent(HttpEvent_t *event) {
  switch (event->event_id) {
    case HTTP_EVENT_ERROR:        Serial.println("Http Event Error"); break;
    case HTTP_EVENT_ON_CONNECTED: Serial.println("Http Event On Connected"); break;
    case HTTP_EVENT_HEADER_SENT:  Serial.println("Http Event Header Sent"); break;
    case HTTP_EVENT_ON_HEADER:    Serial.printf("Http Event On Header, key=%s, value=%s\n", event->header_key, event->header_value); break;
    case HTTP_EVENT_ON_DATA:      break;
    case HTTP_EVENT_ON_FINISH:    Serial.println("Http Event On Finish"); break;
    case HTTP_EVENT_DISCONNECTED: Serial.println("Http Event Disconnected"); break;
    case HTTP_EVENT_REDIRECT:     Serial.println("Http Event Redirect"); break;
  }
}

void setup() {

  Serial.begin(115200);
  Serial.print("Attempting to connect to SSID: ");
  WiFi.begin(ssid, password);

  // attempt to connect to Wifi network:
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(1000);
  }

  Serial.print("Connected to ");
  Serial.println(ssid);

  HttpsOTA.onHttpEvent(HttpEvent);
  Serial.println("Starting OTA");
  HttpsOTA.begin(url, server_certificate);

  Serial.println("Please Wait it takes some time ...");
}

void loop() {
  otastatus = HttpsOTA.status();
  if (otastatus == HTTPS_OTA_SUCCESS) {
    Serial.println("Firmware written successfully. To reboot device, call API ESP.restart() or PUSH restart button on device");
  } else if (otastatus == HTTPS_OTA_FAIL) {
    Serial.println("Firmware Upgrade Fail");
  }
  delay(1000);
}

Debug Message

14:34:44.719 -> ..[  3340][V][NetworkInterface.cpp:78] _onIpEvent(): sta Got New IP: 192.168.1.19 MASK: 255.255.255.0 GW: 192.168.1.1
14:34:46.183 -> [  3351][V][NetworkEvents.cpp:119] checkForEvent(): Network Event: 16 - STA_GOT_IP
14:34:46.183 -> [  3358][V][STA.cpp:110] _onStaArduinoEvent(): Arduino STA Event: 16 - STA_GOT_IP
14:34:46.219 -> [  3365][V][STA.cpp:169] _onStaArduinoEvent(): STA IP: 192.168.1.19, MASK: 255.255.255.0, GW: 192.168.1.1
14:34:46.736 -> Connected to mywifi
14:34:46.736 -> Starting OTA
14:34:46.736 -> Please Wait it takes some time ...
14:34:46.736 -> =========== After Setup Start ============
14:34:46.736 -> INTERNAL Memory Info:
14:34:46.736 -> ------------------------------------------
14:34:46.736 ->   Total Size        :   339400 B ( 331.4 KB)
14:34:46.769 ->   Free Bytes        :   242636 B ( 236.9 KB)
14:34:46.769 ->   Allocated Bytes   :    86100 B (  84.1 KB)
14:34:46.769 ->   Minimum Free Bytes:   242592 B ( 236.9 KB)
14:34:46.769 ->   Largest Free Block:   110580 B ( 108.0 KB)
14:34:46.769 -> ------------------------------------------
14:34:46.769 -> GPIO Info:
14:34:46.769 -> ------------------------------------------
14:34:46.769 ->   GPIO : BUS_TYPE[bus/unit][chan]
14:34:46.769 ->   --------------------------------------  
14:34:46.803 ->      1 : UART_TX[0]
14:34:46.803 ->      3 : UART_RX[0]
14:34:46.803 -> ============ After Setup End =============
14:34:47.349 -> E (4322) esp-tls-mbedtls: mbedtls_ssl_handshake returned -0x2700
14:34:47.349 -> E (4322) esp-tls: Failed to open new connection
14:34:47.349 -> E (4322) transport_base: Failed to open a new connection
14:34:47.349 -> E (4327) HTTP_CLIENT: Connection failed, sock < 0
14:34:47.383 -> Http Event Error
14:34:47.383 -> E (4341) esp_https_ota: Failed to open HTTP connection: ESP_ERR_HTTP_CONNECT
14:34:47.383 -> E (4341) esp_https_ota: Failed to establish HTTP connection
14:34:47.383 -> Http Event Disconnected
14:34:47.383 -> Http Event Disconnected
14:34:47.841 -> Firmware Upgrade Fail
14:34:48.843 -> Firmware Upgrade Fail
14:34:49.831 -> Firmware Upgrade Fail
14:34:50.833 -> Firmware Upgrade Fail
14:34:51.801 -> Firmware Upgrade Fail
14:34:52.833 -> Firmware Upgrade Fail
14:34:53.832 -> Firmware Upgrade Fail
14:34:54.827 -> Firmware Upgrade Fail

Other Steps to Reproduce

I also try skip_cert_common_name_check set to true and false. false gives mbedtls_ssl_handshake returned -0x2700,

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions