我有一个正在运行的Elastic Beanstalk实例,该实例运行在具有入站授权的HTTP和https的安全组上。但是https似乎不起作用...为什么?
第二个问题:我目前正在为我的域名创建ssl证书。我应该在哪里上传到AWS?
谢谢
您可以为Elastic Beanstalk环境配置HTTPS。请阅读以下文档:http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html
您可以根据需要使用控制台或CLI将SSL证书上载到AWS IAM。您无需直接修改EC2实例的安全组。
有关上述文档的步骤3的更多详细信息:
在您的应用程序源内名为01-ssl.config
文件夹的文件夹中创建一个名为的文件.ebextensions
。将以下内容放入此文件中。
option_settings:
- namespace: aws:elb:loadbalancer
option_name: LoadBalancerHTTPSPort
value: 443
- namespace: aws:elb:loadbalancer
option_name: SSLCertificateId
value: <arn of your ssl certificate>
这些选项设置应自动修改您的安全组入口规则,以允许适当的流量。
您可以在此处阅读有关使用ebextensions定制Elastic Beanstalk环境的更多信息。
有关支持的所有选项设置(包括ELB设置)的详细信息,请参见此处。让我知道您是否遇到任何问题。
更新资料
默认情况下,当您创建Elastic Beanstalk环境时,它将创建EC2实例并将其放置在Elastic Load Balancer后面。如果不需要负载平衡器,则可以按照此处的说明创建单实例环境,或者您已经有一个单实例环境。一旦拥有单个实例环境,就可以按照此处说明为您的环境配置SSL 。
更新有关如何不将证书放入配置文件的信息
由于您不想将server.crt文件放入ebextensions配置文件中,因此可以将文件上传到S3,然后要求Elastic Beanstalk将文件直接下载到EC2实例。在该示例中唯一改变的这里是您使用source
的,而不是content
到指定文件的内容。在源代码部分,您可以将URL从您要下载文件的位置放置。
然后您的ebextensions将如下所示:
files:
/etc/pki/tls/certs/server.crt:
mode: "000777"
owner: ec2-user
group: ec2-user
source: <URL>
这样,您无需将内容放入存储库中。在此处阅读有关file指令的更多信息。
万一遇到问题,请仔细检查您的IAM实例配置文件(用于运行beantalk环境的配置文件)可以访问S3对象。如果您需要有关IAM实例角色和Elastic Beanstalk的更多详细信息,请阅读this和this。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句