SSL на системе веб_интерфейс<->сервер<->куча датчиков - как лучше сделать?
Добрый день,
запутался, читал много гугла, но так и не понял как правильно.
Хочу делать такую конструкцию:
компьютер-сервер - обычная PC под линуксом (PC),
к компьютеру подсоединены через етернет или интернет несколько
датчиков-сенсоров (S), через ембеддед линукс. Датчики могут стоять в
одной комнате с сервером, а могут находиться на другом континенте.
Управление всех сенсоров и компьютера происходит через веб интерфейс на JS (WEB).
И датчики, и сервер, и веб интерфейс разрабатываю я сам, и могу в разумных пределах там что-то добавлять-модифицировать.
Сейчас S-PC соединение реализовано через линукс-сокеты. Датчики с
сервером общаются примерно раз в секунду, посылая друг другу сообщения,
формат которых я сам придумал. Датчики-сенсоры общаются только с
сервером. То есть трафик до безобразия простой, я его сам писал, и могу
подстроиться, если надо.
Веб интерфейс на JS общается только с сервером, формат тоже самопальный -
с JS я делаю POST или GET на какой-то заданный порт, а с этого порта на
сервере по сокету я беру или отправляю данные на веб интерфейс.
Все бы хорошо, но мне надо как-то поддержать SSL соединение между любой
из таких коммуникаций, причем и сервер (PC) и датчики-сенсоры (S) могут
иметь как статические IP, так и DHCP.
Мне это нужно, так как есть юзеры этой системы, и в каждому юзеру разрешено или запрещено пользоваться какими-либо датчиками.
Я поставил летц-енкрипт на сервер. Если IP сервера статический, то он по
крайней мере с веб-интерфейсом общается по SSL протоколу.
Если у него DHCL - то летценкрипт отказывается работать.
В датчиках ембеддед линукс, причем очень дебильный
arm-angstrom-linux-gnueabi - поменять - нет возможности. Поставить
летценкрипт туда не удалось. То есть пока голые сокеты.
Скажите, пожалуйста, как с минимальными танцами с бубном прикрутить SSL
на все это, и, чтобы оно на любом даже DHCP соединении работало?
PS: предлагать у каждого юзера ручками что-то настраивать - не реально, стоимость затрат на такую настройку превысит стоимость аппаратуры.
Спасибо!
Если у него DHCL - то летценкрипт отказывается работать.
Отказывается выдавать сертификат.
Если IP сервера статический, то он по крайней мере с веб-интерфейсом общается по SSL протоколу.
SSL работает как на статических, так и на динамических адресах.
причем и сервер (PC) и датчики-сенсоры (S) могут иметь как статические IP, так и DHCP.
Если соединение идет через интернет, то DNS тебе по-любому нужен (в случае динамического IP какой-нибудь dynDNS-сервис).
Далее разворачиваешь у себя собственный CA, выставляешь сертификаты для PC и S, а root-сертификат даешь клиентам.
Спасибо большое, NightWatch, за дельные советы!!!
Далее разворачиваешь у себя собственную CA
Скажите, пожалуйста, правильно ли я понимаю, что СА=Самозаверенный Сертификат? Скажите, пожалуйста, а будет ли обычный браузер его принимать не ругаясь?
Спасибо!
СА=Самозаверенный Сертификат?
CA = Certificate Authority. Его сертификат, да, самозаверенный (self-signed).
будет ли обычный браузер его принимать не ругаясь?
Не будет. Браузеры всегда ругаются на самозаверенныe сертификаты. Поэтому корневой сертификат CA устанавливают в системе (или браузере) как доверенный (trusted), после чего система (или браузер) будет доверять любому сертификату, подписанному этим или промежуточным CA.
Спасибо огромное, NightWatch, за подробное объяснение. Кажется это то, что нужно!
Поэтому корневой сертификат CA устанавливают в системе (или браузере) как доверенный (trusted), после чего система (или браузер) будет доверять любому сертификату, подписанному этим или промежуточным CA.
Простите, пожалуйста, за очень наивный вопрос, но я сам не нашел пример в сети как это сделать, так как в этой области еще мало разбирался. Вдруг Вам было бы не сложно, дайте, пожалуйста, ссылку как это делается. Спасибо!!!
В эту сторону не думали?
https://www.g2.com/products/azure-defender-for-iot/competi...
Спасибо большое, AlexNek,
посмотрю, почитаю, буду разбираться.
У меня правда на датчике довольно слабая борда (двухядерный ветхий арм), которая, к тому же по самое здрассьте загружена вычислениями и имеет на борту только 1ГБ оперативки. Я хотел как-то в сокеты SSL встроить, так как саму коммуникацию на этих сокетах я делаю тоже с учетом загрузки этой борды вычислениями. Наверное можно поставить промежуточную малинку, но так не хотелось городить огород, у меня там и так уйма процессоров и контроллеров, и еще один модуль только усугубит проблемы с апдейтами и общей внутренней коммуникацией.
А я что-то не до конца понял где SSL нужен. Только на Client - Server (PC) или и общение датчик - PC шифровать хочется?
Не, SSL нужен, чтоб юзер не испугался, а в некоторых случаях - это требование организаций, где это будет устанавливаться.