Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 是否可以在没有负载平衡器的情况下将Amazon Elastic Beanstalk与SSL(HTTPS)结合使用?_Amazon Web Services_Ssl_Amazon Ec2_Amazon Elastic Beanstalk_Elastic Load Balancer - Fatal编程技术网

Amazon web services 是否可以在没有负载平衡器的情况下将Amazon Elastic Beanstalk与SSL(HTTPS)结合使用?

Amazon web services 是否可以在没有负载平衡器的情况下将Amazon Elastic Beanstalk与SSL(HTTPS)结合使用?,amazon-web-services,ssl,amazon-ec2,amazon-elastic-beanstalk,elastic-load-balancer,Amazon Web Services,Ssl,Amazon Ec2,Amazon Elastic Beanstalk,Elastic Load Balancer,从现在起,我的应用程序需要一个安全连接(HTTPS)。我验证了在Amazon Web Services Elastic Beanstalk上添加安全连接(https)的大多数教程都将弹性负载平衡器用作隧道 在我的例子中,我只运行一个实例,实际上我不需要负载平衡器。如果没有弹性负载平衡器,如何向实例添加安全连接?可能吗 我正在使用64位Amazon Linux 2017.03 v2.4.4,运行PHP7.0 Elastic Beanstalk。这绝对是可能的。下面是来自使用Apache的AWS的示

从现在起,我的应用程序需要一个安全连接(HTTPS)。我验证了在Amazon Web Services Elastic Beanstalk上添加安全连接(https)的大多数教程都将弹性负载平衡器用作隧道

在我的例子中,我只运行一个实例,实际上我不需要负载平衡器。如果没有弹性负载平衡器,如何向实例添加安全连接?可能吗


我正在使用64位Amazon Linux 2017.03 v2.4.4,运行PHP7.0 Elastic Beanstalk。

这绝对是可能的。下面是来自使用Apache的AWS的示例

基本步骤是:

  • 在服务器上启用SSL
  • 获取证书颁发机构(CA)签名的证书。出于测试目的,您可以创建一个自签名证书。下面是如何使用openssl实现这一点的示例
  • 编辑

    您也可以使用CloudFront进行此操作。这也将允许您使用来自certification Manager的认证。只要记住在北弗吉尼亚地区创建它们

    警告

    CloudFront
    Elastic Beanstalk
    之间的数据仍将通过
    http
    进行交换,因为您的容器不支持
    https

    您还需要更改以下设置:

    • 允许的HTTP方法下您需要至少选择
      GET、HEAD、OPTIONS
      ,但很可能还需要POST/PUT

    • 您不希望CloudFront缓存结果,因此需要将
      缓存策略设置为托管缓存禁用
      

    • 您还希望将所有请求的头、cookie和查询字符串传递到
      ,即
      弹性豆茎容器
      。为此,您需要将
      原始请求策略设置为Managed AllViewer
      


    https
    可以在没有负载平衡器的情况下使用代理服务器进行配置,这是您的情况(带有Amazon Linux 2+的php应该是
    nginx
    )。我已经创建了一个,它适合免费层目前aws文档是针对旧的amazon linux的,所以它们不起作用

    以下是您应该做的:

  • 在安全组中打开端口443
  • 在服务器上添加证书和私钥文件。您可以使用.ebextensions
  • 在/etc/nginx/conf.d中的服务器上创建nginx conf文件,使其侦听端口443并使用您的证书文件加密连接
  • 在proxy_pass中添加你的应用程序(127.0.0.1:你的_端口)

    您可以使用ssh创建nginx conf文件,也可以在应用程序的根文件夹中添加.platform/nginx/conf.d,并在其中添加配置文件

    如果您喜欢更详细的解释,请点击这里:

    请验证斯梅尔·内夫的回答是否正确。当使用Beanstalk之类的托管资源同时使用ELB之类的托管服务来处理SSL加密时,这无疑是AWS的最佳实践。但是,有可能不遵循这种做法,自己管理它。只需为您添加更多配置。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能无效。-@谢谢你的建议,我改了。