Использование HTTPS в клиентских браузерах в локальной сети без подключения к Интернету

Использование HTTPS в клиентских браузерах в локальной сети без подключения к Интернету

Я работаю над веб-приложением, работающим на сервере. Будут клиенты (браузеры смартфонов), подключающиеся к серверу через HTTPS через WiFi, который не будет подключен к Интернету. Он будет в основном использоваться для однодневных мероприятий.

Проблема:Возможно ли использование HTTPS без Интернета?

  • Мы не можем добавлять сертификаты в хранилища доверия клиентов. Мы также не можем настраивать клиентов каким-либо другим способом. Клиентами будут случайные люди, посещающие мероприятие
  • Клиенты не могут получить доступ к интернету для проверки CRL/OCSP. Возможно, просто нет подключения к интернету

У меня есть мысльс использованием локального DNS:

  • У меня есть ключ и доверенный SSL-сертификат (LetsEncrypt) дляoffline.mydomain.com
  • В автономной сети WiFi есть DNS-сервер, который направляет все DNS-адреса на мой сервер приложений.
  • Все сертификаты и списки отзыва сертификатов из offline.mydomain.comцепочки доверия SSL-сертификата загружаются на сервер приложений, и к ним можно получить доступ по путям, определенным в CDP и AIA сертификатов.
  • Сервер приложений утверждает, что он работает на https://offline.mydomain.com(а DNS-сервер указывает offline.mydomain.comна сервер приложений)

Весь поток будет таким:

  • Клиент: GET https://offline.mydomain.com/app
  • DNS-сервер: offline.mydomain.comнаходится на IP-адресе сервера приложений
  • Мой сервер приложений:вот HTML
  • ...
  • Клиент: GET http://crl.ca.com/crls/ca.crl
  • DNS-сервер: crl.ca.comнаходится на IP-адресе сервера приложений
  • Мой сервер приложений:вот CRL
  • ...
  • Клиент: GET http://certificate.ca.com/certs/ca.cer
  • DNS-сервер: certificate.ca.comнаходится на IP-адресе сервера приложений
  • Мой сервер приложений:вот сертификат
  • ...

Однако я не очень понимаю в сетях. Возможно ли реализовать часть DNS?

  • Могу ли я заставить клиентов использовать мой локальный DNS, не настраивая их вручную?
  • Насколько сильно будут сбиты с толку клиенты после повторного подключения к реальному Интернету?
  • Будут ли смартфоны подключаться к Wi-Fi, не подключенному к Интернету?

решение1

Я не думаю, что клиент не сможет подключиться к хосту TLS только потому, что он не может достичь CRL или сервера OCSP. Поэтому я на 99% уверен, что все, что вам нужно, это:

  • Сертификат сервера, подписанный широко известным центром сертификации (например, Let's Encrypt), вместе с соответствующим закрытым ключом, установленным на вашем локальном веб-сервере.
  • Локальный DNS-сервер, который направляет соответствующее имя хоста на IP-адрес вашего локального сервера.
  • DHCP-сервер для назначения IP-адресов клиентским устройствам и указания им использовать ваш DNS-сервер.

DNS и DHCP — очень легкие операции, поэтому при желании их можно легко запустить на том же компьютере, что и HTTPS-сервер.

На мобильных устройствах Wi-Fi, скорее всего, будет включен DHCP, и они, скорее всего, смогут использовать любой DNS-сервер, который DHCP-сервер им скажет использовать. Поэтому я не думаю, что вам нужно беспокоиться о том, чтобы указывать "8.8.8.8"/"8.8.4.4"/"1.1.1.1" на вашем локальном DNS-сервере. Но я настоятельно рекомендую вам настроить прототип вашей автономной сети задолго до события и протестировать его на различных устройствах iOS, Android, Mac и Windows (по крайней мере, на одном из каждого).

Устройства ни в коем случае не должны путаться при подключении к реальному Интернету.

Связанный контент