Возможно получить действительный сертификат SSL для устройства, но я бы не рекомендовал его. Вот как вы можете это сделать, если хотите:
Убедитесь, что, когда ваше устройство находится в режиме AP, оно всегда доступно с точно таким же IP-адресом. Например, убедитесь, что ESP32 прослушивает на 192.168.1.1
.
Зарегистрируйте домен как example.com
. Добавьте запись A на свой DNS-сервер для iot.example.com
со значением 192.168.1.1
.
Получите действительный сертификат SSL для iot.example.com
из любого доверенного органа. Поместите этот сертификат и связанный ключ на ваше устройство.
Теперь, когда ваш пользователь подключается к вашей программной точке доступа, он может перейти к https://iot.example.com
и увидеть действительный сертификат.
Однако, Я бы действительно рекомендовал не делать этого . Вам придется столкнуться с двумя основными проблемами:
Ключ для вашего SSL-сертификата будет на вашем устройстве sh. Если кто-то извлекает его, он может маскироваться под iot.example.com
. Вы можете уменьшить это, используя шифрование fla sh, но оно все еще невелико.
Максимальный срок действия сертификата SSL составляет около двух лет. Таким образом, ваш поток подготовки через пару лет прервется.
Вместо этого то, что вы должны сделать - это защищенная программная точка доступа с WPA2 и пароль, который вы можете дать пользователям. Это гарантирует, что соединение зашифровано, и вы можете обслуживать свою форму предоставления по HTTP вместо HTTPS.
Еще лучше, чем пытаться реализовать это самостоятельно, - использовать ESP-IDF унифицированный API обеспечения . Он заботится о деталях реализации и поддерживает Wi-Fi и Bluetooth в качестве транспорта.
Независимо от того, что вы решите сделать, я настоятельно рекомендую прочитать документацию ESP-IDF по унифицированному выделению ресурсов и документация по обеспечению Wi-Fi , поскольку они дадут вам представление о том, что происходит под капотом и что требуется для безопасной реализации. В частности, вы увидите, что библиотека обеспечения Wi-Fi на самом деле использует пароль * stati c WPA2, как я предложил выше.