У меня есть гаджет [*], который подключается к сети WiFi пользователя и отвечает на команды через простой интерфейс REST. Пользователь использует веб-приложение для управления этим гаджетом. Веб-приложение в настоящее время обслуживается через http
, и javascript приложения делает AJAX для локального IP-адреса гаджета, чтобы управлять им. Эта схема работает хорошо, и у меня нет проблем с ней.HTTPS для локального IP-адреса
[*] Под «гаджет» Я имею в виду фактическое, физическое устройство IoT, что пользователь покупает и устанавливает в своем доме, и настроит подключение к своей домашней Wi-Fi сети
Теперь я хочу для обслуживания этого веб-приложения за https
. У меня нет проблемы с настройкой https
на стороне хостинга. Проблема в том, что теперь браузер блокирует доступ к гаджету (так как REST API гаджета превышает http
, а не https
).
Очевидное решение состоит в том, чтобы гаджет обслуживал его REST API за https
. Но как? Он имеет локальный IP-адрес, и никто не выдаст ему сертификат. (Даже если бы они это сделали, мне пришлось бы покупать лодку сертификатов для каждого возможного локального IP-адреса.) Я мог бы совершить кругосветное путешествие через облако (добавив дополнительную логику на моей стороне сервера, чтобы принять команды из веб-приложения и вперед это гаджет над другим соединением), но это увеличит задержки.
Есть ли способ обойти эту проблему? Одна из возможностей, что я имею в виде, заключаются в следующем:
- Получить групповой сертификат (скажем,
*.mydomain.com
) - Выполнить свой собственный DNS, который отображает поддомены на локальный IP-адрес следующего рисунка (например,
192-168-1-123.mydomain.com
будет отображаться в192.168.1.123
) - Использование сертификата дикого карты во всех гаджетов
- Мой веб-приложение, то могли бы сделать AJAX вызовы
https://192-168-1-123.mydomain.com
вместоhttp://192.168.1.123
и латентные останется неизменным в сторону от первоначального поиска DNS
Будет ли это работать? Это дорогой эксперимент, чтобы попробовать (подстановочные сертификаты стоят ~ 200 долларов США), а работа DNS-сервера выглядит как лот работы. Кроме того, я нахожу себя недостаточно квалифицированным, чтобы анализировать последствия для безопасности.
Возможно, у вас уже есть служба, которая решает эту проблему?
Почему бы вам не попробовать разместить свой гаджет на статическом IP-адресе? Тогда вам понадобится только один сертификат – koelkastfilosoof
@koelkastfilosoof Большинство ЦС не выдают сертификаты для голых IP-адресов. Даже если бы они, мне пришлось бы полагаться на моего пользователя, чтобы выполнить настройку (статический IP-адрес должен быть настроен на маршрутизаторе WiFi, чтобы избежать конфликтов), который подвержен ошибкам. Кроме того, было бы невозможно иметь более одного гаджета на одно домашнее хозяйство. –
http: //security.stackexchange.com/вопросы/116832/securing-peer-to-peer-communication – lxkarthi