Elastic Beanstalk - PHP / 强制 HTTPS

Posted

技术标签:

【中文标题】Elastic Beanstalk - PHP / 强制 HTTPS【英文标题】:Elastic Beanstalk - PHP / Force HTTPS 【发布时间】:2013-02-09 16:05:26 【问题描述】:

在将 Amazon Elastic Beanstalk 与 php 结合使用时,如何将所有流量从 http 重定向到 https?我已经设置我的 Beanstalk 有一个 https 端口(所有的证书和东西都已经设置好了)。

【问题讨论】:

您想将所有页面推送到 HTTPS 吗? 【参考方案1】:

Beanstalk 设置其负载平衡器以将 X-Forwarded-Proto 标头发送到您的实例。

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] !== 'https') 
    // redirect to secure site
    header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);

不过,由于中间人攻击中使用了SSL stripping 技术,有些人会发誓根本不启用 HTTP。

话虽如此,您可以使用HSTS 缓解 SSL 剥离。

【讨论】:

只有一个变化,它应该是 $_SERVER['HTTP_X_FORWARDED_PROTO'] 而不是 $_SERVER['X_FORWARDED_PROTO']【参考方案2】:

如果您有单实例弹性 beanstalk 环境,请尝试以下解决方案:AWS Elasticbeanstalk single instance Force SSL Redirect loop

【讨论】:

以上是关于Elastic Beanstalk - PHP / 强制 HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

从 Elastic Beanstalk 安装 PHP 模块

启用 ZipArchive 的 Elastic Beanstalk 编译 php

AWS Elastic Beanstalk PHP 日志不在 CloudWatch 中

将多个平台部署到 Elastic Beanstalk (PHP/Python)

AWS Elastic Beanstalk 使用 PHP 和私有 Composer 存储库

如何在 AWS Elastic Beanstalk Docker 容器中记录 PHP 错误