ESP8266 - это встроенный процессор.Это имеет много ограничений.Одним из них является то, что он не хранит сертификаты для каких-либо ЦС.
Как сказано в документации для esp32, «существует три способа установить безопасное соединение с помощью класса WiFiClientSecure: использование корневого центра сертификации (ЦС»).), используя сертификат корневого ЦС плюс клиентский сертификат и ключ и используя предварительный общий ключ (PSK). "
Если ваш сертификат подписан сервером с известным ЦС, вы можете использоватьМетод CA.Вы вызываете функцию setCACert с сертификатом, который вы можете получить с помощью openssl.Вам нужно сохранить этот сертификат в виде массива.Это должно выглядеть примерно так (DER).
const char* test_root_ca= \
"-----BEGIN CERTIFICATE-----\n" \
"MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/\n" \
"MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n" \
"DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow\n" \
"SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT\n" \
............
"KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==\n" \
"-----END CERTIFICATE-----\n";
В вашем коде вы должны поместить
client.setCACert(test_root_ca);
перед вызовом client.connect.