web-dev-qa-db-ja.com

インターネットに接続せずにローカルネットワーク上のクライアントブラウザでHTTPSを使用する

サーバー上で実行されているWebアプリケーションに取り組んでいます。インターネットに接続されないWiFi経由でHTTPS経由でサーバーに接続するクライアント(スマートフォンブラウザ)があります。これは主に1日のイベントに使用されます。

問題:インターネットなしでHTTPSを使用することは可能ですか?

  • クライアントのトラストストアに証明書を追加することはできません。また、他の方法でクライアントを構成することもできません。クライアントは、イベントを訪れるランダムな人々になります
  • クライアントはインターネットにアクセスしてCRL/OCSPを確認できません。インターネットに接続できない可能性があります

私は考えがありますローカルDNSを使用します:

  • offline.mydomain.comのキーと信頼できるSSL証明書(LetsEncrypt)を所有しています
  • オフラインWiFiネットワークにすべてのDNSアドレスをアプリケーションサーバーにポイントするDNSサーバーがあります
  • offline.mydomain.com SSL証明書のトラストチェーンからのすべての証明書とCRLは、アプリケーションサーバーにダウンロードされ、証明書の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を使用させることはできますか?
  • 実際のインターネットに接続し直した後、クライアントはどのくらい混乱しますか?
  • スマートフォンはインターネットに接続されていないWiFiに接続しますか?
2
McLayn

クライアントがCRLまたはOCSPサーバーに到達できなかったという理由だけで、TLSホストへの接続に失敗することはないと思います。だから私はあなたが必要とするのは99%確信しています:

  • 広く信頼されているCA(Let's Encryptなど)によって署名されたサーバー証明書と、一致する秘密鍵がローカルWebサーバーボックスにインストールされています。
  • 関連するホスト名をローカルサーバーのIPアドレスにポイントするローカルDNSサーバー。
  • クライアントデバイスにIPアドレスを与え、DNSサーバーを使用するようにクライアントデバイスに指示するDHCPサーバー。

DNSとDHCPは非常に軽量な操作であるため、必要に応じてHTTPSサーバーと同じボックスで簡単に実行できます。

モバイルWi-FiデバイスではDHCPが有効になっている可能性が高く、DHCPサーバーが使用するように指示したDNSサーバーを使用できる可能性があります。したがって、ローカルDNSサーバーで「8.8.8.8」/「8.8.4.4」/「1.1.1.1」を指すことを心配する必要はないと思います。ただし、イベントのずっと前にオフラインネットワークのプロトタイプを設定し、さまざまなiOS、Android、Mac、およびWindowsデバイス(それぞれ少なくとも1つ)でテストすることを強くお勧めします。

実際のインターネットに接続し直すときに、デバイスをまったく混乱させないでください。

2
Spiff