私の愚かな質問でごめんなさい。しかし、私は本当に何が起こるか知りたいです。
http
プロトコルを介してホストされているWebサービスがあります。
SSL証明書を購入して、https
プロトコルでWebサービスをホストします...
問題は、Androidアプリケーションが既にWebサービスに接続されていることです(Webサービスはhttp
を使用して私のホスティングにあります)。
問題は、SSL証明書を購入し、ホスティングパスをHTTP
からHTTPS
に変更した場合、Javaコードを変更する必要がありますか?アプリがhttp
に接続しようとしたときに、http://hosting.esy.es/action.php
のサーバーへの接続をhttps://hosting.esy.es/action.php
に変更するには、デフォルトでサーバーがhttps
にリダイレクトしますか?
これにより、my Java=コードですべてのhttpをhttpsに変更するようになります。httpsに自動的にリダイレクトされるため、コードを変更する必要がない場合、セキュリティパイプは既にあるのですか?
理解してくれてありがとう!
サーバー側でSSL/TLSを有効にする場合、クライアントも「SSL/TLSを話す」ことができる必要があります。そうしないと、接続がリセットされてしまいます。
「https」を使用するようにWebサービスを変更するだけでは、暗号化されたすべてのアプリケーション通信が自動的に変更されるわけではありません。これは共有プロトコルです。いきなりフランス語を話していて、英語しかわからないとコミュニケーションが取れない。これはTLSの場合と同じです。
TLSサーバー側を有効にする場合は、アプリがTLSも使用できるように変更する必要があります。幸いにも、Javaには、すでに定義されているクラスを使用してTLSを簡単に処理する手段があります。調べてみてください。
一方、WebにTLS/SSl対応の両方のトラフィック(https url)を提供し、単純なhttpも開いたままにすることができます。そのため、TLSとアプリのHTTPのみを使用してWebサイトを作成できます。その後、HTTPのみのチャネルをシャットダウンする前に、TLS経由でアプリを移行することができます。
HTTPをHTTPSにリダイレクトするようにサーバーを構成する場合、アプリケーションコードをまったく変更する必要はありません(リダイレクトに従うと想定)。
ただし、リクエストが最初に行われるときは、暗号化されません。攻撃者は、要求データを読み取るため、またはHTTPSへのリダイレクトを妨害するために、中間者または受動的に接続を傍受する可能性があります。最善の解決策は、今すぐ変更を加え、HTTPSのみを指す新しいアプリケーションコードのロールアウトを開始することです。