2017-10-26 3 views
0

マイクロサービスアプリケーションをSSLで保護する方法に疑問があります。マイクロサービスでSSLを使用する

QUIK状況​​のスケッチ:

私は前にロードバランサーでAmazon EC2インスタンスを持っています。 ec2インスタンスでは、レジストリとゲートウェイアプリケーション(VPC内)で5つのマイクロサービスを実行しています。 ロードバランサはAmazon証明書マネージャからの証明書を使用します。 私はkeytoolで生成された自己署名証明書も持っています。

今私が午前質問です: は、私は私のゲートウェイアプリケーションのための自己署名証明書を設定し、信頼できる証明書としてロードバランサーと自己署名証明書を登録するか、私はすべてのmicroservice用の自己署名証明書を設定する必要がありますすべきまた?

よろしく、

+1

ゲートウェイアプリケーションとは何ですか?あなたの質問は明確ではありません。 –

+1

これは、上記のように内部アーキテクチャをよりよく理解していなければ答えられません。 「ゲートウェイアプリケーション」に応じて、アプリケーションロードバランサ(AWB WebアプリケーションファイアウォールをALBに追加することも可能)で何をやっているのか、失敗点を排除してスケーラビリティを向上させることができますあなたのマイクロサービスのために。バランサとマイクロサービスの間に実際にHTTPSが必要かどうか、またはブラウザとバランサが十分であるかどうかという質問もあります(両方とも必要となる通常の理由は技術的ではなくコンプライアンスです)。 –

+0

@ Michael-sqlbotゲートウェイアプリケーションは、ユーザーの対話ポイントとして機能するスプリングブート/ angularjsアプリケーションです。ユーザがこのアプリケーションを介して暗黙的に要求するリクエストは、リクエストを処理できる特定のマイクロサーバに要求を分散させるサービスディスカバリにルーティングされます。マイクロサービスはすべて同じvpcにあります。だから実際には、ブラウザとロードバランサの間でsslを使うだけで十分でしょう。これは、このすべての前にあります。 –

答えて

0

あなたは、エンドユーザーに公開microservicesを持ちたい、とhttpsで固定。

セキュリティを必要とする場合は、自己署名証明書を使用しないでください。 Let's Encryptははるかに良い選択肢です。

API Gatewayを使用することができます。httpsを使用します。それはあなたのすべてのサービスのための単一の終点かもしれません - そしてディレクトリは異なったサービスにつながることができます。一方、すべてのものが単一のマシン上にあれば、私は単一のJVMを使用します...しかし、それは別の話です。

その他のオプションは不明です。私のためだけでなく、コメントによると。マイクロサービスがインターネットに公開されている場合、ロードバランサ上でhttpsを終了することができます。私が得ないのは、>>私のゲートウェイアプリケーション< <です。エンドユーザとマイクロサービスの間に何かがあるように見えます...もしそれが真実なら、httpsはどこかで終了しなければなりません。

EC2インスタンスの前にロードバランサがある理由はわかりません。通常LBはオートスケーリンググループの前で使用され、インスタンス間で負荷を分散します。それを自動化したい場合 - Elastic Beanstalkは良いオプションです。

+0

こんにちはMichalさんのコメントありがとうございます。ゲートウェイアプリケーションを明確にするために、角度のあるフロントエンドを備えたマイクロサービスもあります。私はloadbalancerレベルでのみhttpsを使用することを選択し、自己署名証明書を捨てました。ユーザーがhttpsにリダイレクトされるようにするには、別のポートでリッスンしている別のnginxコンテナがあり、nginxがhttpsドメインに301リダイレクトを行った後に、loadbalancerがポート80をnginxポートにマップします。 –

関連する問題