Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

SSL на системе веб_интерфейс<->сервер<->куча датчиков - как лучше сделать?

981  
wasja-de завсегдатай28.07.21 11:52
28.07.21 11:52 

Добрый день,

запутался, читал много гугла, но так и не понял как правильно.

Хочу делать такую конструкцию:

компьютер-сервер - обычная 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: предлагать у каждого юзера ручками что-то настраивать - не реально, стоимость затрат на такую настройку превысит стоимость аппаратуры.


Спасибо!

Редактировать/удалить сообщение

#1 
NightWatch коренной житель28.07.21 17:32
NightWatch
NEW 28.07.21 17:32 
в ответ wasja-de 28.07.21 11:52, Последний раз изменено 28.07.21 21:14 (NightWatch)
Если у него DHCL - то летценкрипт отказывается работать.

Отказывается выдавать сертификат.

Если IP сервера статический, то он по крайней мере с веб-интерфейсом общается по SSL протоколу.

SSL работает как на статических, так и на динамических адресах.

причем и сервер (PC) и датчики-сенсоры (S) могут иметь как статические IP, так и DHCP.

Если соединение идет через интернет, то DNS тебе по-любому нужен (в случае динамического IP какой-нибудь dynDNS-сервис).

Далее разворачиваешь у себя собственный CA, выставляешь сертификаты для PC и S, а root-сертификат даешь клиентам.

#2 
wasja-de завсегдатай28.07.21 19:53
NEW 28.07.21 19:53 
в ответ NightWatch 28.07.21 17:32, Последний раз изменено 28.07.21 20:16 (wasja-de)

Спасибо большое, NightWatch, за дельные советы!!!


Далее разворачиваешь у себя собственную CA

Скажите, пожалуйста, правильно ли я понимаю, что СА=Самозаверенный Сертификат? Скажите, пожалуйста, а будет ли обычный браузер его принимать не ругаясь?


Спасибо!

#3 
NightWatch коренной житель28.07.21 21:13
NightWatch
NEW 28.07.21 21:13 
в ответ wasja-de 28.07.21 19:53, Последний раз изменено 28.07.21 21:15 (NightWatch)
СА=Самозаверенный Сертификат?

CA = Certificate Authority. Его сертификат, да, самозаверенный (self-signed).

будет ли обычный браузер его принимать не ругаясь?

Не будет. Браузеры всегда ругаются на самозаверенныe сертификаты. Поэтому корневой сертификат CA устанавливают в системе (или браузере) как доверенный (trusted), после чего система (или браузер) будет доверять любому сертификату, подписанному этим или промежуточным CA.

#4 
wasja-de завсегдатай29.07.21 17:10
NEW 29.07.21 17:10 
в ответ NightWatch 28.07.21 21:13

Спасибо огромное, NightWatch, за подробное объяснение. Кажется это то, что нужно!


Поэтому корневой сертификат CA устанавливают в системе (или браузере) как доверенный (trusted), после чего система (или браузер) будет доверять любому сертификату, подписанному этим или промежуточным CA.

Простите, пожалуйста, за очень наивный вопрос, но я сам не нашел пример в сети как это сделать, так как в этой области еще мало разбирался. Вдруг Вам было бы не сложно, дайте, пожалуйста, ссылку как это делается. Спасибо!!!

#5 
NightWatch коренной житель29.07.21 18:38
NightWatch
NEW 29.07.21 18:38 
в ответ wasja-de 29.07.21 17:10

В Windows:

Computerzertifikate verwalten - для всех пользователей (требует админских прав).

Benutzerzertifikate verwalten - только для текущего пользователя (админских прав не требует).

#6 
AlexNek патриот29.07.21 21:13
AlexNek
NEW 29.07.21 21:13 
в ответ wasja-de 28.07.21 11:52

В эту сторону не думали?

https://www.g2.com/products/azure-defender-for-iot/competi...

#7 
wasja-de завсегдатай29.07.21 22:48
NEW 29.07.21 22:48 
в ответ NightWatch 29.07.21 18:38

Спасибо большое, NightWatch, за подробное объяснение!!! Реально не знал и не смог нагуглить, теперь все стало понятно и в своей убунте нашел где оно запрятано.

#8 
wasja-de завсегдатай29.07.21 22:52
NEW 29.07.21 22:52 
в ответ AlexNek 29.07.21 21:13

В эту сторону не думали?

https://www.g2.com/products/azure-defender-for-iot/competi...


Спасибо большое, AlexNek,

посмотрю, почитаю, буду разбираться.


У меня правда на датчике довольно слабая борда (двухядерный ветхий арм), которая, к тому же по самое здрассьте загружена вычислениями и имеет на борту только 1ГБ оперативки. Я хотел как-то в сокеты SSL встроить, так как саму коммуникацию на этих сокетах я делаю тоже с учетом загрузки этой борды вычислениями. Наверное можно поставить промежуточную малинку, но так не хотелось городить огород, у меня там и так уйма процессоров и контроллеров, и еще один модуль только усугубит проблемы с апдейтами и общей внутренней коммуникацией.

#9 
AlexNek патриот15.09.21 20:37
AlexNek
NEW 15.09.21 20:37 
в ответ wasja-de 29.07.21 22:52, Последний раз изменено 15.09.21 20:52 (AlexNek)

Про Апле вот попалось

https://www.makeuseof.com/tag/macos-windows-10-virtual-mac...

Вот за оплату

https://checkout.macincloud.com/

#10 
MrSanders коренной житель15.09.21 22:39
NEW 15.09.21 22:39 
в ответ wasja-de 29.07.21 22:52

НП

А я что-то не до конца понял где SSL нужен. Только на Client - Server (PC) или и общение датчик - PC шифровать хочется?

#11 
wasja-de завсегдатай16.09.21 23:03
NEW 16.09.21 23:03 
в ответ MrSanders 15.09.21 22:39, Последний раз изменено 16.09.21 23:05 (wasja-de)
А я что-то не до конца понял где SSL нужен. Только на Client - Server (PC) или и общение датчик - PC шифровать хочется?

Не, SSL нужен, чтоб юзер не испугался, а в некоторых случаях - это требование организаций, где это будет устанавливаться.

#12