我正在从我的ESP32 S2卡卢加工具包中提出一个帖子请求。在局域网中运行服务器程序时,我已经测试了HTTP请求。我正在使用esp_http_client_handle_t
和esp_http_client.h
的esp_http_client_config_t
来完成这个任务。
现在,我在AWS网关中设置了一个HTTPS。我现在收到了https的以下错误:
E (148961) esp-tls-mbedtls: No server verification option set in esp_tls_cfg_t structure. Check esp_tls API reference
E (148961) esp-tls-mbedtls: Failed to set client configurations, returned [0x8017] (ESP_ERR_MBEDTLS_SSL_SETUP_FAILED)
E (148971) esp-tls: create_ssl_handle failed
E (148981) esp-tls: Failed to open new connection
E (148981) TRANSPORT_BASE: Failed to open a new connection
E (148991) HTTP_CLIENT: Connection failed, sock < 0
我怎么才能解决这个问题?谢谢
编辑:下面是我使用的代码,我为post请求创建了一个http客户机:
esp_err_t client_event_get_handler(esp_http_client_event_handle_t evt)
{
switch (evt->event_id)
{
case HTTP_EVENT_ON_DATA:
printf("HTTP GET EVENT DATA: %s", (char *)evt->data);
break;
default:
break;
}
return ESP_OK;
}
static void post_rest_function( char *payload , int len)
{
esp_http_client_config_t config_post = {
.url = SERVER_URL,
.method = HTTP_METHOD_POST,
.event_handler = client_event_get_handler,
.auth_type = HTTP_AUTH_TYPE_NONE,
.transport_type = HTTP_TRANSPORT_OVER_TCP
};
esp_http_client_handle_t client = esp_http_client_init(&config_post);
esp_http_client_set_post_field(client, payload, len);
esp_http_client_set_header(client, "Content-Type", "image/jpeg");
esp_http_client_perform(client);
esp_http_client_cleanup(client);
}
我主要用它作为图像有效载荷:
void app_main(){
....
post_rest_function( (char *)pic->buf, pic->len);
....
}
发布于 2022-03-25 19:14:59
您需要证书才能发出https请求。如果您不想实现这一点,只需编辑sdkconfig“允许潜在的不安全选项”-> true即可。
“默认情况下Skip服务器证书验证”-> true
小心,这不安全。
发布于 2022-08-27 07:34:36
此外,您可以选择包含证书以确保传输是安全的(有效服务器)。
您可以获得主机就像这样的根SSL证书,查看到56分钟标记,以获得完整的解释。
或者您可以使用espressif在以色列国防军框架中提供的包含的证书包,用于:
在代码中包括#include "esp_crt_bundle.h"
,在client_config_t中添加以下内容:
.transport_type = HTTP_TRANSPORT_OVER_SSL, //Specify transport type
.crt_bundle_attach = esp_crt_bundle_attach, //Attach the certificate bundle
在此之后,这一过程仍然是一样的。
我上面链接的视频很有帮助,我建议你看整件事:)
https://stackoverflow.com/questions/71618972
复制相似问题