如何在AWS Elastic Load Balancer上实施HTTP严格传输安全性(HSTS)?

瓦工

我想对我的应用程序实施HSTS。

我有一个ELB终止SSL并将流量转发到我的应用程序,该应用程序是用作反向代理的apache服务器。

我知道为了实现HSTS,我需要在请求中添加标头Strict-Transport-Security。

不幸的是,似乎我无法在我的Apache服务器上实现它,因为必须将其添加到HTTPS虚拟主机,并且我的Apache仅配置了http虚拟主机,因为SSL在ELB上终止了。

这意味着ELB在转发请求时必须向请求添加标头Strict-Transport-Security。

我怎么做?我可以添加某种对我有用的安全策略吗?

瓦工

我询问了AWS支持人员,答案是目前ELB无法在来自客户端的请求上添加HSTS标头。因此,我决定使用我的Apache服务器找到一种解决方法。这是我找到的解决方案:

HSTS RFC规定,

HSTS主机绝不能在通过非安全传输传递的HTTP响应中包含STS头字段。

然后,我要做的是在Apache中在http => https重定向之后设置标头由于此重定向具有标志[L],因此这意味着301重定向将不包含标头,但任何https请求都将包含该标头。我的Apache配置看起来像这样:

<VirtualHost *:80>
...
    #http=>https
    RewriteCond %{HTTP:X-Forwarded-Proto} =http
    RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

    #hsts
    Header set Strict-Transport-Security "max-age=31536000"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在AWS Elastic Beanstalk上强制应用程序版本

如何在AWS Load Balancer URL上使用https协议?

如何在AWS Elastic Beanstalk上安装/运行Spark Java Framework?

如何在AWS Elastic Beanstalk上配置我的WSGI应用程序的名称?

什么是HTTP严格传输安全性(HSTS)(Apache)?

阻止对AWS Elastic Beanstalk和Elastic Load Balancer的HEAD请求

在Elastic Beanstalk前面的Application Load Balancer上终止SSL

.net Core-带有AWS Load Balancer和Elastic Beanstalk的HTTPS不起作用

无法通过AWS Elastic Load Balancer进行与MySQL容器的SSL加密连接

如何在AWS Elastic Beanstalk上设置和使用Laravel计划?

Amazon AWS EC2-如何限制仅从Elastic Load Balancer接收流量?

AWS Elastic Load Balancer不会将HTTP标头转发到EC2实例

使用适用于Python的AWS开发工具包访问AWS Elastic Load Balancer

AWS-Elastic Load Balancing是否实际上阻止LOAD BALANCER故障转移?

为AWS Elastic Load Balancer指定的公共子网中有8个免费IP地址吗?

AWS中的Elastic Load Balancer(ELB)和Route 53

如何在运行AWS Linux 2的AWS Elastic Beanstalk上配置Linux交换空间?

如何在Elastic Beanstalk上从Dockerfile.aws.json运行命令?

如何在Elastic Beanstalk AWS上使用MySQL托管节点js / express服务器

带有Elastic Load Balancer SSL的oAuth

Web部署到AWS Elastic Load Balancer之后的EC2实例

AWS Elastic Load Balancer有选择地启用SSL

将SSL证书上传到AWS Elastic Load Balancer

AWS Elastic Load Balancer的SSL证书配置错误

基于令牌的身份验证是否需要AWS Elastic Load Balancer粘性会话?

Elastic Load Balancer 可以自动扩展吗?

如何在 AWS Elastic Beanstalk 上设置编码?

如何使用 Classic Load Balancer 配置 Elastic Beanstalk NodeJS 應用程序以使用 HTTPS?

AWS Elastic Load balancer 背后的 Jenkins 实例并启用粘性