私が正しくあなたの質問を理解するのであれば、:
- をあなたは、クロスオリジン・リクエストを使用してアクセスすることができるWebアプリケーションを持っています。
- このアプリケーションはローカルネットワーク上に展開されます。つまり、非公開のIPアドレス(そのネットワーク上にあるマシンであれば「ローカルサーバー」と呼びます)を介してアクセスします。
- 好ましくはSSLを使用して、クライアントとローカルサーバー間のリンクを保護する必要があります。
これは可能です。ローカルサーバーの制御権を持つユーザーがsomesubdomain.SomeDomainHeControls.com
のSSL証明書を取得し、その証明書をローカルサーバーに展開し、そのサブドメインをローカルIPにポイントします。そのアドレスを介してアプリケーションにアクセスすると、警告が表示されず、接続が保護されます。クライアントがそのドメインを使用してアプリケーションにのみアクセスする限り、サーバーの所有者だけがそのキーにアクセスできるため、これは安全です。
ローカルサーバーを自分で制御する(秘密キーを抽出できない)場合は、*.aDomainForThisPurposeThatYouControl.com
のワイルドカード証明書を取得し、適切なIPをポイントする各展開用のサブドメインを作成するだけです。
ローカルサーバーを制御しておらず、自分の証明書を取得できない場合は、個の個別の証明書を取得できます。これは、deployment1.aDomainForThisPurposeThatYouControl.com
を作成し、それをローカルIPに向け、その名前のための通常の単一ホスト証明書を作成し、ローカルサーバーにインストールすることを意味します。安全上の予防措置として、あなたがこのドメイン上のホストの秘密鍵を与えたので、他の目的でそのドメインを使用しないでください。
また、ローカルネットワークがインターネットにアクセスできる場合は、管理下にある外部サーバーでアプリケーション自体をホストすることもできます。そのサーバーに定期的なSSLを展開します。アプリケーション自体が外部サーバーから安全にロードされた後、ローカルサーバーからデータを取得するためのプレーンなHTTP要求を行うことができます。これにより、「混在コンテンツ」警告が発生しますが、SSLエラーは発生しません。その後、JavaScriptベースの暗号化を使用してデータを保護することができます。たとえば、クライアントからサーバーに向かうデータだけを保護したい場合、外部の信頼できるサーバーは信頼できるJS暗号ライブラリと内部サーバーのRSA公開キー(SSL認証接続経由)をクライアントに提供できます。単純なHTTP経由で送信する前に、クライアント側でデータを暗号化するだけです。理論的には、JavaScriptでSSLクライアントを作成し、スクリプトと信頼できるサーバー証明書をクライアントに提供し、HTTPまたはWebSocketsトンネルを使用し、このトンネルを介してローカルサーバーとJavaScriptクライアント間で独自のSSL接続を実行することもできます。もちろんこれはあまり実用的ではありませんが、安全です(JSはセキュアな接続を介してダウンロードされるため)。信頼できるサーバーから小さなJavaScriptをロードし、残りの部分をローカルサーバーからダウンロードし、署名/ハッシュを検証して実行することもできます。 Megauploadはそのようなことをしています。
"アプリケーションはJavaScriptのみを使用していますが、私はそれをどのように保護することができないのでしょうか"私はJavaScriptがクライアント側の言語だと言っています。 –
この設定でWIFIの役割は何ですか? – likeitlikeit
SSL(HTTPS)を使用すると、すべてのHTTP要求および応答データがネットワーク経由で送信される前に暗号化されるため、Open Wi-Fi経由でWebアプリケーションにアクセスする場合でも、安全な通信(完全性と機密性) Wi-Fiをセキュリティで保護するには、ワイヤレスセキュリティ、WEP(Wired Equivalent Privacy)またはWPA(Wi-Fi Protected Access)(http://en.wikipedia.org/wiki/Wireless_security)のプロトコルを使用する必要があります。開いているWi-Fiを保護するために、SSLの使用に関係なく使用できます。 SSLは、クライアントとWebアプリケーションの間でインターネット上の保護を提供することに注意してください。 –