Как перехватить HTTPS-запросы с помощью espconn? - PullRequest
0 голосов
/ 28 апреля 2018

Следующий код позволяет перехватывать все запросы, поступающие на мой esp8266 (под управлением NodeMCU), и отображать мою собственную страницу:

static int enduser_setup_dns_start(void)
{
  state->espconn_dns_udp = (struct espconn *) c_malloc(sizeof(struct espconn));
  esp_udp *esp_udp_data = (esp_udp *) c_malloc(sizeof(esp_udp));

  c_memset(state->espconn_dns_udp, 0, sizeof(struct espconn));
  c_memset(esp_udp_data, 0, sizeof(esp_udp));
  state->espconn_dns_udp->proto.udp = esp_udp_data;
  state->espconn_dns_udp->type = ESPCONN_UDP;
  state->espconn_dns_udp->state = ESPCONN_NONE;
  esp_udp_data->local_port = 53;


  return 0;
}

Он захватывает http://example.com,, но не захватывает http s : //example.com. Как я мог это исправить?

1 Ответ

0 голосов
/ 17 мая 2018

Перехват HTTPS-запросов невозможен, если у вас не настроен центр сертификации на каждом клиентском компьютере (и даже не для сайтов, использующих HSTS или HPKP - это довольно много)

Весь смысл SSL / HTTPS в том, что клиенты знают, что они общаются с веб-сайтом, с которым они думают. Без сертификата и закрытого ключа этого веб-сайта вы не сможете выдать себя за него, не создав ошибок.

Порталы Wi-Fi (и т. Д.) Обычно игнорируют HTTPS-запросы и ждут первого небезопасного HTTP-запроса. Большинство устройств при подключении к новой сети Wi-Fi будут пытаться загрузить страницу HTTP, и, если они найдут захваченный портал, создайте уведомление / покажите его пользователю

...