我发现,您无法通过弹性 beantalk 控制台执行此操作(至少目前还没有)。但是您仍然可以通过 eb cli 或 aws cli 进行设置。
使用 EB CLI
基本上我们要做的是更新aws:elb:listener 设置,您可以在general options 文档中查看可能的设置。
使用 EB CLI 非常简单。假设我们已经为我们的项目设置了awsebcli 工具,我们可以使用eb config 命令。
它将打开您的默认终端编辑器并允许您更改以 YAML 文件形式编写的设置。当您进行更改并保存时,eb config cmd 将自动更新您的 Elastic Beanstalk 环境的设置。
您需要将以下设置添加到您的配置文件中:
aws:elb:listener:443:
InstancePort: '80'
InstanceProtocol: HTTP
ListenerEnabled: 'true'
ListenerProtocol: HTTPS
PolicyNames: null
SSLCertificateId: CERTIFICATE_ARN_HERE
将 CERTIFICATE_ARN_HERE 的值更改为您的 AMC 证书 ARN。您可以在 AWS Certificate Manager 控制台中找到它:
重要提示:您的aws:elb:listener:443 设置必须置于aws:elb:listener:80 设置之上。否则环境配置更新会报错。
使用 AWS CLI
同样可以通过update-environment 命令使用通用aws cli 工具来完成。
aws elasticbeanstalk update-environment \
--environment-name APPLICATION_ENV --option-settings \
Namespace=aws:elb:listener:443,OptionName=InstancePort,Value=80 \
Namespace=aws:elb:listener:443,OptionName=InstanceProtocol,Value=HTTP \
Namespace=aws:elb:listener:443,OptionName=ListenerProtocol,Value=HTTPS \
Namespace=aws:elb:listener:443,OptionName=SSLCertificateId,Value=CERTIFICATE_ARN_HERE
注意:当您通过上述任一方法对其进行更新时,Elastic Beanstalk 控制台不会将 HTTPS 显示为已启用。但是负载均衡器会,它也将应用于 Cloudformation 模板,并保存到 EB 的配置中。