web-dev-qa-db-ja.com

ホスティングでSSL証明書を使用すると、Javaコードを変更できますか?

私の愚かな質問でごめんなさい。しかし、私は本当に何が起こるか知りたいです。

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に自動的にリダイレクトされるため、コードを変更する必要がない場合、セキュリティパイプは既にあるのですか?

理解してくれてありがとう!

2
Federick Jons

サーバー側でSSL/TLSを有効にする場合、クライアントも「SSL/TLSを話す」ことができる必要があります。そうしないと、接続がリセットされてしまいます。

「https」を使用するようにWebサービスを変更するだけでは、暗号化されたすべてのアプリケーション通信が自動的に変更されるわけではありません。これは共有プロトコルです。いきなりフランス語を話していて、英語しかわからないとコミュニケーションが取れない。これはTLSの場合と同じです。

TLSサーバー側を有効にする場合は、アプリがTLSも使用できるように変更する必要があります。幸いにも、Javaには、すでに定義されているクラスを使用してTLSを簡単に処理する手段があります。調べてみてください。

一方、WebにTLS/SSl対応の両方のトラフィック(https url)を提供し、単純なhttpも開いたままにすることができます。そのため、TLSとアプリのHTTPのみを使用してWebサイトを作成できます。その後、HTTPのみのチャネルをシャットダウンする前に、TLS経由でアプリを移行することができます。

3
M'vy

HTTPをHTTPSにリダイレクトするようにサーバーを構成する場合、アプリケーションコードをまったく変更する必要はありません(リダイレクトに従うと想定)。

ただし、リクエストが最初に行われるときは、暗号化されません。攻撃者は、要求データを読み取るため、またはHTTPSへのリダイレクトを妨害するために、中間者または受動的に接続を傍受する可能性があります。最善の解決策は、今すぐ変更を加え、HTTPSのみを指す新しいアプリケーションコードのロールアウトを開始することです。

1
multithr3at3d

Webサーバーにhttpsを追加したからといって、httpを削除する必要があるわけではありません。たとえば、このページは httphttps の両方で利用できます。

Androidアプリをhttpsを使用するように移行することは確かに良い考えですが、すぐに実行する必要はありません。両方を提供してください!

0
Mike Ounsworth