Usando HTTPS em navegadores clientes em uma rede local sem conexão com a internet

Usando HTTPS em navegadores clientes em uma rede local sem conexão com a internet

Estou trabalhando em um aplicativo da web executado em um servidor. Haverá clientes (navegadores de smartphones) conectando-se ao servidor via HTTPS através de um WiFi que não estaria conectado à internet. Seria usado principalmente para eventos de 1 dia.

O problema:É possível ter HTTPS sem internet?

  • Não podemos adicionar nenhum certificado aos armazenamentos confiáveis ​​dos clientes. Também não podemos configurar os clientes de outra forma. Os clientes serão pessoas aleatórias que visitarão o evento
  • Os clientes não podem acessar a Internet para verificar CRL/OCSP. Talvez não haja conexão com a Internet

eu tenho uma ideiausando um DNS local:

  • Possuo uma chave e um certificado SSL confiável (LetsEncrypt) paraoffline.mydomain.com
  • Há um servidor DNS na rede WiFi offline que aponta todos os endereços DNS para o meu servidor de aplicativos
  • Todos os certificados e CRLs da offline.mydomain.comcadeia confiável do certificado SSL são baixados para o servidor de aplicação e podem ser acessados ​​nos caminhos definidos no CDP e AIA dos certificados
  • O servidor de aplicativos afirma estar em execução https://offline.mydomain.com(e o servidor DNS aponta offline.mydomain.compara o servidor de aplicativos)

Todo o fluxo seria:

  • Cliente: GET https://offline.mydomain.com/app
  • DNS: offline.mydomain.comestá no IP do servidor de aplicação
  • Meu servidor de aplicativos:aqui está o HTML
  • ...
  • Cliente: GET http://crl.ca.com/crls/ca.crl
  • DNS: crl.ca.comestá no IP do servidor de aplicação
  • Meu servidor de aplicativos:aqui está a CRL
  • ...
  • Cliente: GET http://certificate.ca.com/certs/ca.cer
  • DNS: certificate.ca.comestá no IP do servidor de aplicação
  • Meu servidor de aplicativos:aqui está o certificado
  • ...

No entanto, não entendo muito de networking. A parte do DNS seria possível?

  • Posso fazer com que os clientes usem meu DNS local sem configurá-los manualmente?
  • Quanto os clientes ficariam confusos depois de se conectarem novamente à Internet real?
  • Os smartphones se conectarão a um WiFi que não esteja conectado à internet?

Responder1

Não acho que um cliente falharia ao se conectar a um host TLS só porque não conseguiu acessar o servidor CRL ou OCSP. Tenho 99% de certeza de que tudo que você precisa é:

  • Um certificado de servidor assinado por uma CA amplamente confiável (como Let's Encrypt), junto com a chave privada correspondente, instalada na caixa do seu servidor web local.
  • Um servidor DNS local que aponta o nome do host relevante para o endereço IP do seu servidor local.
  • Um servidor DHCP para fornecer endereços IP aos dispositivos clientes e instruí-los a usar o seu servidor DNS.

DNS e DHCP são operações muito leves, portanto, podem ser executados facilmente na mesma caixa que o servidor HTTPS, se você desejar.

Os dispositivos Wi-Fi móveis provavelmente terão o DHCP habilitado e provavelmente serão capazes de usar qualquer servidor DNS que o servidor DHCP lhes diga para usar. Portanto, não acho que você precise se preocupar em apontar "8.8.8.8"/"8.8.4.4"/"1.1.1.1" para seu servidor DNS local. Mas eu sugiro fortemente que você configure um protótipo de sua rede offline muito antes do evento e teste-o com uma variedade de dispositivos iOS, Android, Mac e Windows (pelo menos um de cada).

Os dispositivos não devem ser confundidos ao se conectar novamente à Internet real.

informação relacionada