私はサーバー上で実行される Web アプリケーションに取り組んでいます。インターネットに接続されていない WiFi 経由で HTTPS 経由でサーバーに接続するクライアント (スマートフォン ブラウザー) があります。これは主に 1 日のイベントに使用されます。
問題:インターネットなしで HTTPS を使用することは可能ですか?
- クライアントのトラストストアに証明書を追加することはできません。また、他の方法でクライアントを構成することもできません。クライアントはイベントに訪れるランダムな人々になります。
- クライアントはインターネットにアクセスしてCRL/OCSPを検証できません。インターネットに接続されていない可能性があります。
考えがあるローカル DNS を使用する:
- 私はキーと信頼できるSSL証明書(LetsEncrypt)を所有しています
offline.mydomain.com
- オフラインWiFiネットワークには、すべてのDNSアドレスをアプリケーションサーバーに向けるDNSサーバーがあります。
- SSL証明書の信頼チェーンからのすべての証明書とCRLは
offline.mydomain.com
アプリケーションサーバーにダウンロードされ、証明書のCDPとAIAで定義されたパスでアクセスできます。 - アプリケーション サーバーは、実行されていると主張します
https://offline.mydomain.com
(DNS サーバーはoffline.mydomain.com
アプリケーション サーバーを指しています)
全体の流れは次のようになります。
- クライアント:
GET https://offline.mydomain.com/app
- ドメイン名:
offline.mydomain.com
アプリケーションサーバーのIP上にある - 私のアプリケーションサーバー:ここにHTMLがあります
- ...
- クライアント:
GET http://crl.ca.com/crls/ca.crl
- ドメイン名:
crl.ca.com
アプリケーションサーバーのIP上にある - 私のアプリケーションサーバー:CRLはこちら
- ...
- クライアント:
GET http://certificate.ca.com/certs/ca.cer
- ドメイン名:
certificate.ca.com
アプリケーションサーバーのIP上にある - 私のアプリケーションサーバー:ここに証明書があります
- ...
しかし、ネットワークについてはあまり理解していません。DNS の部分は可能でしょうか?
- 手動で構成せずにクライアントにローカル DNS を使用させることはできますか?
- 実際のインターネットに再接続した後、クライアントはどの程度混乱するでしょうか?
- スマートフォンはインターネットに接続されていないWiFiに接続できますか?
答え1
クライアントが CRL または OCSP サーバーに到達できないという理由だけで TLS ホストに接続できないとは考えられません。したがって、必要なのは以下の 1 つだけであると 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 台) でテストすることを強くお勧めします。
実際のインターネットに再接続するときに、デバイスが混乱することはまったくありません。