За яких умов і чому на NodeMCU / ESP8266 не потрібно реалізовувати Web-сервер на контролері з використанням HTTPS/TLS/SSL?

Якщо вам потрібно забезпечити сторінку початкових налаштувань розумного пристрою, як-от підключення до домашньої Wi-Fi точки доступу, постає питання:

“Нам потрібно якось захистити дані, які вводить користувач на локальній веб-сторінці контролера від перехоплення зловмисником, адже там передаються чутливі дані, такі як SSID та пароль від неї. А ще можуть передаватися різні токени та інші службові дані, знаючи які зловмисник може реалізувати якусь атаку.”

Хоча відповідь на це запитання, криється у самому питанні, але не є очевидною.

У більшості випадків, розробники без певного досвіду, починають шукати шляхи як поставити на локальний веб-сервер контролера SSL/TLS шифрування для захисту з’єднання між браузером і контролером. Швидко розчаровуються і не розуміють, чому ці потрібні і важливі речі взагалі не передбачено за замовчуванням.

Вирішення задачі:

Якщо ви піднімете веб-сервер із сторінкою початкових налаштувань на контролері тільки і тільки у режимі точки доступа, то у вас буде з’єднання браузер <-> контролер захищеним на рівні Wi-Fi і вам немає потреби ще якось захищати вже шифрований канал.

На практиці це виглядає так:

  • вмикаємо пристрій з коробки;
  • натискаємо кнопку, що вказано в інструкції для переведення пристрою у режим налаштувань;
  • пристрій завантажується з Wi-Fi модулем у режимі Access Point (AP);
  • на ноутбуці чи смартфоні де є браузер, підключаєтесь до точки доступу Wi-Fi, яку підняв ваш розумний пристрій у режимі початкових налаштувань;
  • в браузері ноутбука чи смартфона заходите на сторінку налаштувань за стандартною адресою 192.168.4.1
  • після збереження початкових налаштувань, пристрій автоматично вимикає точку доступу і перевантажується у звичайному режимі.