現在、コンソールからは、証明書マネージャで作成した証明書をBeanstalk環境に割り当てる方法はありません。
これを実行するには、AWS CLIを使用する必要があります。私はこれを達成することができました。そして幸いにも、それは簡単です。
- はELB-acm.jsonファイルを作成し、Webルートのどこかにそれを置く:要するに は、あなたがする必要があります。私は自分のアプリケーションのWebルートに直接心を入れました。
- は(
- はパスがあるため、単純に
file://elb-ecm.json
だった私にとっては、ご使用の環境
aws elasticbeanstalk update-environment --environment-name Your-Environment --option-settings file://PATH-TO-JSON/elb-acm.json
に証明書を適用するupdate environment
コマンドを使用して証明書マネージャに移動し、証明書のARN IDを取得します私はその理由は信じていると信じています)私はWeb rootでコマンドを実行していて、そのファイルは同じディレクトリにありますThis article goes into detail(そして私のために働いていました)。がんばろう!
Beanstalk環境を再構築するたびに、ロードバランサが吹き飛ばされ再作成されるため、できるだけ早く証明書をLoad Balancerコンソール(EC2> Load Balancer)に割り当てることはできません。
また、Beanstalk環境に証明書を適用する前に証明書を設定していることを確認してください。たとえば、* .mydomain.comとnaked mydomain.comの両方を安全にしたい場合は、これらのコマンドを実行した後で証明書を環境から簡単に削除する方法がないため、完全に最初に設定されていることを確認してください(このシナリオで間違っていなければ、基本的にあなたの環境を完全に終了し、新しい環境を作成する必要があります)。
また、証明書の設定が完了すると、セキュリティ保護されていないリクエストに対して301リダイレクトを実行するために、アプリケーションにリダイレクトコードを設定することをお勧めします。リダイレクトを実行するには、着信要求でX-Forwarded-Proto
ヘッダーを検索する必要があります。安全でない場合は、セキュアポートにリダイレクトする必要があります。たとえば、ここに私のアプリケーションのコードがどのように見えるかです:
// in production, only allow secure requests (https)
public function performSecureRedirect(rc) {
// based on domain comparison
var isLive = myEnvironmentData.isLive;
// setting up the health check url is important for smooth beanstalk deployments
// beanstalk issues this healthcheck request via a non-secure port
var isAmazonHealthcheckUrl = rc.event eq "system.healthcheck";
if (isLive and not isAmazonHealthcheckUrl) {
var headerData = getHTTPRequestData().headers;
// x-forwarded-proto is a special header
// setup by Amazon ELB (Elastic Load Balancer)
var requestProtocol = getHttpRequestData().headers['x-forwarded-proto'];
var isSecureRequest = requestProtocol eq "https";
if (not isSecureRequest) {
location("https://" & cgi.server_name & cgi.path_info, false, 301);
}
}
}
これのためのTx。 aws cliについて - 私たちは 'awsebcli'または単に 'aws' cliについて話していますか?その手続きをすぐに確認します。 一方、私は実際にEC2> Load Balancerの変更によってこれを設定しましたので、アップグレードでこれが置き換えられると述べました。 – drorsun
それはメインの 'aws' cliだと確信しています。私がAnand Capurにリンクしたその記事はかなり良いです。 –