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

Сообщение Re[7]: Как странице в браузере найти сервер в локальной сети от 05.04.2021 14:42

Изменено 05.04.2021 14:43 Vetal_ca

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

B>А с local DNS это может прокатить? Например, сервер регистрирует в локальном DNS (mDNS) адрес server.local, и веб-клиент всегда обращается к адресу wss://server.local. Тогда сертификат нужен только один.



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


Проблема в том, что у тебя будет самоподписанный certificate authority (CA), не включенный в глобальный, для *.local. Браузеры идут с существующими trusted root CA. И не только браузеры, еще клиентский код. Тот же curl.

См https://security.stackexchange.com/questions/158997/how-does-my-browser-inherently-trust-a-ca

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

Первый попавшийся: https://pki-tutorial.readthedocs.io/en/latest/

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

https://en.wikipedia.org/wiki/Chain_of_trust
https://www.google.com/search?q=windows+add+trusted+root+ca
https://www.google.com/search?q=Linux+add+trusted+root+ca

Т.е., или свой CA и пользователи должны добавлять CA. Или DNS + сертификат внутри глобальной CA Trust Chain.

Кстати, сертификат еще обновлять нужно. Let's Encrypt — 3 месяца.

Кстати, раздачу сертификатов можно через свой web сервис сделать, как часть платной подписки. Ну и, локальные DNS + Cert раздавать через его.

При этом наверняка будет еще проблема с DNS rebinding attack, многие раутеры по умолчанию будут препятствовать Public DNS Record -> Private IP
Re[7]: Как странице в браузере найти сервер в локальной сети
Здравствуйте, Basil2, Вы писали:

B>А с local DNS это может прокатить? Например, сервер регистрирует в локальном DNS (mDNS) адрес server.local, и веб-клиент всегда обращается к адресу wss://server.local. Тогда сертификат нужен только один.



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


Проблема в том, что у тебя будет самоподписанный certificate authority (CA), не включенный в глобальный, для *.local. Браузеры идут с существующими trusted root CA. И не только браузеры, еще клиентский код. Тот же curl.

См https://security.stackexchange.com/questions/158997/how-does-my-browser-inherently-trust-a-ca

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

Первый попавшийся: https://pki-tutorial.readthedocs.io/en/latest/

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

https://en.wikipedia.org/wiki/Chain_of_trust
https://www.google.com/search?q=windows+add+trusted+root+ca
https://www.google.com/search?q=Linux+add+trusted+root+ca

Т.е., или свой CA и пользователи должны добавлять CA. Или DNS + сертификат внутри глобальной CA Trust Chain.

Cертификат еще обновлять нужно. Let's Encrypt — 3 месяца.

Кстати, раздачу сертификатов можно через свой web сервис сделать, как часть платной подписки. Ну и, локальные DNS + Cert раздавать через его.

При этом наверняка будет еще проблема с DNS rebinding attack, многие раутеры по умолчанию будут препятствовать Public DNS Record -> Private IP