如何为在 Elastic Beanstalk 环境中运行的应用程序配置 SSL 证书?

2 分钟阅读
0

我想为我在 AWS Elastic Beanstalk 中运行的应用程序配置 SSL 证书。

简短描述

要为您在 Elastic Beanstalk 中运行的应用程序启用 SSL 加密,请执行以下操作之一:

  • 在负载均衡器级别终止 HTTPS
  • 在实例级别终止 HTTPS
  • 将 HTTP 重定向到 HTTPS

解决方法

在负载均衡器级别终止 HTTPS

要将您的 Elastic Beanstalk 环境更新为使用 HTTPS,必须在您的环境中为负载均衡器配置 HTTPS 侦听器。有两种类型的负载均衡器支持 HTTPS 侦听器:

  • 经典负载均衡器
  • 应用程序负载均衡器

有关详细信息,请参阅配置 Elastic Beanstalk 环境的负载均衡器以终止 HTTPS

在实例级别终止 HTTPS

要在单实例环境中使用 HTTPS 或配置负载均衡器以在无需解密的情况下传输流量,您可以使用平台钩子。可使用平台钩子配置向应用程序传输流量的代理服务器以终止 HTTPS 连接。钩子文件取决于 Elastic Beanstalk 平台的类型。有关详细信息,请参阅配置应用程序以在实例上终止 HTTPS 连接

**注意:**由于 Amazon Linux AMI(AL1)平台已停用,因此最佳做法是使用平台钩子向代理服务器添加更改。将之前在 AL1 平台 .ebextensions/nginx 目录中提供的代理配置文件移至 AL2 中的 platform/nginx 平台钩子目录。要扩展 Elastic Beanstalk 默认 NGINX 配置,请将 .conf 配置文件添加到应用程序源捆绑包中名为 .platform/nginx/conf.d/ 的文件夹中。Elastic Beanstalk NGINX 配置会自动在此文件夹中包含 .conf 文件:

~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`--

要覆盖 Elastic Beanstalk 默认 NGINX 配置,请在源捆绑包中包含配置 .platform/nginx/nginx.conf

~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- nginx.conf
`--

如果覆盖 Elastic Beanstalk NGINX 配置,则拉入 Elastic Beanstalk 配置。拉入配置后,可以使用增强型运行状况报告和监控、自动应用程序映射和静态文件功能。要拉入配置,请在 nginx.conf 中添加以下行:

include conf.d /elasticbeanstalk/ *.conf;

有关如何配置代理的详细信息,请参阅反向代理配置

**注意:**您可能会在代理错误日志中看到以下警告:nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive。为避免出现此警告,请使用以下 .conf 文件并将其存储在平台钩子文件夹中,以在实例级别终止 SSL:

listen       443 ssl;
server_name  localhost;


location / {
              proxy_pass  http://localhost:app_port;
              proxy_set_header   Connection "";
              proxy_http_version 1.1;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Real-IP       $remote_addr;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto https;
          }
      }

将 HTTP 重定向到 HTTPS

HTTP 到 HTTPS 的重定向处理客户端发起的非安全流量,并将流量重定向到 HTTPS。如果您要使用应用程序负载均衡器或单个实例进行重定向,请参阅配置 HTTP 到 HTTPS 的重定向

默认情况下,经典负载均衡器无法将 HTTP 流量重定向到 HTTPS。因此,您需要为应用经典负载均衡器的 Web 服务器实例配置重写规则。有关详细信息,请参阅如何在经典负载均衡器上将 HTTP 流量重定向到 HTTPS?


AWS 官方
AWS 官方已更新 1 年前