Информация об изменениях

Сообщение Re[9]: Как странице в браузере найти сервер в локальной сети от 07.04.2021 15:30

Изменено 07.04.2021 15:33 Vetal_ca

Re[9]: Как странице в браузере найти сервер в локальной сети
Здравствуйте, Basil2, Вы писали:

B>Здравствуйте, Vetal_ca, Вы писали:


V_>>Можно, конечно. Локально можно крутить весь свой интернет с DNS, подсетями и TLS

V_>>В твоем случае, ты создаешь собственную PKI Infrastructure. Я использую для внутренних CA Vault PKI. Но можно при помощи openssl, конкретный лучший тьюториал я не подскажу.

B>Не могу понять зачем так сложно? В Windows 10 есть встроенный mDNS. Более того, компьютер пользователя уже автоматически зарегистрирован в сети под именем CompName.local. Все, что мне требуется, это зарегистрировать компьютер еще под одним именем (чтобы у всех пользолвателей был единый адрес, и на него получить сертификат). И все для этого в винде уже есть.


B>Вопрос — как? В параметрах mDSN сервиса dns-sd я вижу только регистрацию сервиса, а мне нужно не сервис, а сам ip зарегистрировать.


Компьютеры в сети получают адрес DNS сервера. По DHCP.

Обычно это DNS на internet gateway, IG (A.K.A. раутер). Windows компьютер получает свой IP, отдает свой host name и DNS на раутере знает про эту связку, win-host-name:IP.

Есть еще варианты с разными autodiscovery, но я с в них не очень, может, кто другой подскажет. Например, для затравки, https://en.wikipedia.org/wiki/Bonjour_(software)

Компьютеры на локальной сети не ходят на mDNS конкретного Win PC. Этот DNS сервис — внутренний для данной рабочей станции. Если туда добавить DNS records, они будут исключительно внутри этого компьютера

Или, например, WinServer держит полноценный DNS сервер. И остальные компьютеры через DHCP получают адрес этого сервера. Тогда это работает. Можешь, например, поставить Unbound DNS на конкретный компьютер. Прописать там свой хост со всеми альтернативными именами. И настроить сеть так, что другие компьютеры ходят на этот DNS.

Правильнее же, не привязываться к локальному *.local, а к частному домену. Например, *.lan.basil2.com. Дальше, ставишь DNS сервер на этот PC для обслуживания исключительно *.lan.basil2.com. И в публичный DNS добавляешь NS record, ссылающийся на этот DNS сервер, так что все запросы к *.lan.basil2.com будут идти через этот сервер, из-за публичной NS record. Так оно будет работать, даже если на других компьютерах прописаны вручную публичные DNS сервера, типа 1.1.1.1 или 8.8.8.8

Это все частные варианты DNS извращений, чтобы понять, почему mDNS не работает для других компьютеров

----------------------------

По PKI. *.local не принадлежит тебе. Поэтому все что в этой TLD не может иметь публичной trust chain. Так что браузеры или клиентский код ей не доверяют. "Зеленый замок", из интернета, может быть только для твоих частных сервисов, по *.basil2.com, при условии что ты можешь менять DNS records под basil2.com. Как доказательство владения. И DNS Challenge в Let's Encrypt как раз так и работает.

Ты не можешь добавить в интернет твои DNS Records для *.local. Поэтому не можешь получить публичный сертификат.

Самоподписанный, да, можно, но тогда самосозданный CA должен быть занесен во все клиенты как доверенный. Геморно, да. Но, тоже, есть варианты. Если клиент — не GUI, то можно запаковать киентское приложение в Image (Docker) с CA, включающем твой CA внутри этого image/контейнера. Возможно, как-то поставлять клиента с рядом лежащим CA roots, как поставляется браузер с предустановленными доверенными корневыми сертификатами. Но, это уже другой доктор
Re[9]: Как странице в браузере найти сервер в локальной сети
Здравствуйте, Basil2, Вы писали:

B>Здравствуйте, Vetal_ca, Вы писали:


V_>>Можно, конечно. Локально можно крутить весь свой интернет с DNS, подсетями и TLS

V_>>В твоем случае, ты создаешь собственную PKI Infrastructure. Я использую для внутренних CA Vault PKI. Но можно при помощи openssl, конкретный лучший тьюториал я не подскажу.

B>Не могу понять зачем так сложно? В Windows 10 есть встроенный mDNS. Более того, компьютер пользователя уже автоматически зарегистрирован в сети под именем CompName.local. Все, что мне требуется, это зарегистрировать компьютер еще под одним именем (чтобы у всех пользолвателей был единый адрес, и на него получить сертификат). И все для этого в винде уже есть.


B>Вопрос — как? В параметрах mDSN сервиса dns-sd я вижу только регистрацию сервиса, а мне нужно не сервис, а сам ip зарегистрировать.


Компьютеры в сети получают адрес DNS сервера. По DHCP.

Обычно это DNS на internet gateway, IG (A.K.A. раутер). Windows компьютер получает свой IP, отдает свой host name и DNS на раутере знает про эту связку, win-host-name:IP.

Есть еще варианты с разными autodiscovery, но я с в них не очень, может, кто другой подскажет. Например, для затравки, https://en.wikipedia.org/wiki/Bonjour_(software)

Компьютеры на локальной сети не ходят на mDNS конкретного Win PC. Этот DNS сервис — внутренний для данной рабочей станции. Если туда добавить DNS records, они будут исключительно внутри этого компьютера

Или, например, WinServer держит полноценный DNS сервер. И остальные компьютеры через DHCP получают адрес этого сервера. Тогда это работает. Можешь, например, поставить Unbound DNS на конкретный компьютер. Прописать там свой хост со всеми альтернативными именами. И настроить сеть так, что другие компьютеры ходят на этот DNS.

Правильнее же, не привязываться к локальному *.local, а к частному домену. Например, *.lan.basil2.com. Дальше, ставишь DNS сервер на этот PC для обслуживания исключительно *.lan.basil2.com. И в публичный DNS добавляешь NS record, ссылающийся на этот DNS сервер, так что все запросы к *.lan.basil2.com будут идти через этот сервер, из-за публичной NS record. Так оно будет работать, даже если на других компьютерах прописаны вручную публичные DNS сервера, типа 1.1.1.1 или 8.8.8.8

Это все частные варианты DNS извращений, чтобы понять, почему mDNS не работает для других компьютеров

----------------------------

По PKI. *.local не принадлежит тебе. Поэтому все что в этой TLD не может иметь публичной trust chain. Так что браузеры или клиентский код ей не доверяют. "Зеленый замок", из интернета, может быть только для твоих частных сервисов, по *.basil2.com, при условии что ты можешь менять DNS records под basil2.com. Как доказательство владения. И DNS Challenge в Let's Encrypt как раз так и работает.

Ты не можешь добавить в интернет твои DNS Records для *.local. Поэтому не можешь получить публичный сертификат.

Самоподписанный, да, можно, но тогда самосозданный CA должен быть занесен во все клиенты как доверенный. Геморно, да. Но, тоже, есть варианты. Если клиент — не GUI, то можно запаковать киентское приложение в Image (Docker) с CA, включающем твой CA внутри этого image/контейнера. Возможно, как-то поставлять клиента с рядом лежащим CA roots, как поставляется браузер с предустановленными доверенными корневыми сертификатами. Но, это уже другой доктор