如何让 SSL 与 Elastic Beanstalk、Route53 和 Cloudflare 一起使用

Posted

技术标签:

【中文标题】如何让 SSL 与 Elastic Beanstalk、Route53 和 Cloudflare 一起使用【英文标题】:How To Get SSL Working with Elastic Beanstalk, Route53 and Cloudflare 【发布时间】:2020-08-28 21:27:06 【问题描述】:

我正在努力让 SSL 在具有以下配置的弹性 beanstalk 环境中工作:

我的域由 GoDaddy 托管,我通过 cloudflare 路由,然后路由到 Route53,A 记录指向我的子域 api.myapp.com(指向我的 EB 环境)。

我正在使用 Cloudflare 的完整 E2E 加密,并且正在使用 cloudflare 提供的 SSL 证书。

在我的 EB 环境中,我使用的是 Classic Load Balancer 并具有以下配置(注意:我的应用程序使用 websockets,因此使用 TCP 端口):

我已将 SSL 证书添加到 HTTPS 配置,但是当我导航到 api.myapp.com 时,我仍然在浏览器中看到“您的连接不安全”。

有人对如何解决这个问题有任何建议吗?

【问题讨论】:

【参考方案1】:

来自 zerossl.com 的免费 ssl 有效。在验证和最后的其他内容之后,您将获得三个文件。

使用 AWS 控制台

下载包含证书、链和私有的 zip 文件。转到 AWS 证书管理器 -> 导入证书 -> 添加所有详细信息 -> 查看并导入证书。

使用 AWS CLI,它将输出证书标识符

 aws iam upload-server-certificate --server-certificate-name ish --certificate-body file://certificate.crt --certificate-chain file://ca_bundle.crt  --private-key file://private.key

转到 AWS 控制台负载均衡器并选择 443 HTTPs,最近的证书将可用,可以通过在上述两种情况下提供的标识符来识别。应用更改并重新启动环境。新证书将可用。

【讨论】:

【参考方案2】:

原来 AWS 不再允许使用从 cloudflare 购买的 SSL 证书,所以我通过在 AWS 上配置一个 CA 来解决这个问题。

【讨论】:

以上是关于如何让 SSL 与 Elastic Beanstalk、Route53 和 Cloudflare 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Elastic Beanstalk:将分支部署到环境

Elastic Beanstalk 在配置菜单中没有负载均衡器设置

如何使用 Elastic Beanstalk 提高 SSL 性能

Elastic Beanstalk ALB 上的多个 SSL 证书

如何将自签名 SSL 证书上传到 Elastic Beanstalk

为什么Elastic Beanstalk负载均衡器拒绝建立SSL连接?