2017-11-07 18 views
0

私は最終的にEC2インスタンスでホストされるサービスを開発するためにDropwizardを使用しています。AWS EC2上のJava WebサービスSSL?

現在、Amazonの証明書は、Elastic Beanstalkのようなサービスでのみ使用できます。 証明書の詳細をダウンロードして自分の鍵に署名またはロールすることはできません。私は、パブリックドメインのキーストアファイルサービスを生成するためのJava keytoolを使用してみました

http://docs.aws.amazon.com/cli/latest/reference/acm/get-certificate.html

は、しかし、ブラウザ上Certficate警告を与えること、で利用できるようになります。

JavaサービスにElastic Beanstalkを使用するソリューションはありますか?

ご提案は大歓迎です!

+0

[こちら](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Java.html) EC2を使用している場合は、ロードバランサでAWS証明書を使用することも、Tomcat/Wildfly/Glassfishの前でApacheを使用して「通常の」証明書を取得することもできます。 – stdunbar

+0

@stdunbarこのシナリオでApacheを必要とする理由はありません。 –

+0

@マークB - 好みと歴史の問題。 ApacheでSSLを設定する方がJavaサーバーよりも簡単ですが、それは必須ではないと100%正確です。それを指摘してくれてありがとう。 – stdunbar

答えて

2

JavaサービスにElastic Beanstalkを使用するソリューションはありますか?

これはあなたの問題を解決するものではありません。これで、ロード・バランサを備えたEC2インスタンスが得られます。必要な場合は、Load Balancerを自分でセットアップできます。 Elastic Beanstalkは、自分でできることを超えて特別なSSL証明書のサポートを提供していません。

私はサービスがしかし、ブラウザ上 Certficate警告を与えること、で利用できるようになります パブリックドメインのキーストアファイルを生成するJavaのkeytoolを使用してみました。

self-signed certificateが生成されました。これはブラウザに警告を表示します。ブラウザの警告を回避するには、実際の認証局からSSL証明書を取得する必要があります。

AWS ACM証明書と共にLoad BalancerまたはCloudFrontを使用したくない場合は、他の認証局から有効なSSL証明書を調達し、EC2インスタンスに直接インストールする必要があります。何も費用をかけずにこれを行う最も一般的な方法は、Let's Encrypt証明書を使用することです。

+0

ありがとう、私はloadbalancerの方法で行く場合、私はちょうどWebサービスでHTTPを使用し、ロードバランサはTLSを処理する? – kaleeway

+1

はい、ロードバランサを使用する場合は、EC2サーバーでHTTPだけを処理し、ロードバランサはSSL/TLS終了を処理します。サーバー側の 'x-forwarded-proto'ヘッダーを調べて、クライアントがHTTPまたはHTTPS経由でロードバランサに接続されているかどうかを調べることができます。 Application Load Balancerを使用する場合は、WebソケットのサポートやHTTP/2サポートなどの優れた機能も利用できます。 –

関連する問題