AWS Elastic Beanstalk - SSL Certificate added but still HTTPS Error: SSL_ERROR_BAD_CERT_DOMAIN

AWS Elastic Beanstalk - SSL Certificate added but still HTTPS Error: SSL_ERROR_BAD_CERT_DOMAIN

我购买了一个名为 studileih.de, then I deployed my Angular frontend on firebase: https://studileih-ceb70.web.app/ 的域,并从我的域 studileih.de 重定向到 firebase URL。

然后我将 Spring 启动后端部署到 AWS Elastic Beanstalk 上:http://studileih1.eu-central-1.elasticbeanstalk.com/

-> 问题:由于 firebase 上的前端使用 https 而 AWS 上的后端使用 http 我得到了 Mixed content error。前端无法加载任何后端数据。

所以我试图通过在 AWS Certificate Manager (ACM) 中为我的后端创建一个 SSL 证书并将其添加到我的 Elasting Beanstalk Load Balancer 来解决这个问题。这行得通,我现在至少可以建立从前端到后端的连接。

但现在每当向我的后端发送请求时我都会收到此错误:

当我点击“接受风险并继续”一次时,它工作正常并且我的所有后端数据都被加载了。但我不能要求我的用户这样做。

(您可以通过以下方式尝试:https://studileih1.eu-central-1.elasticbeanstalk.com/products 并单击“高级”->“接受风险并继续”(如果您敢的话^^) 完成后,单击 studileih.de,它现在将加载后端数据。)

我知道问题存在是因为在创建 SSL 证书时,我输入了 studileih.de 作为证书的域。我想我必须为 studileih1.eu-central-1.elasticbeanstalk.com 创建一个 SSL 证书。 但是当我尝试为 studileih1.eu-central-1.elasticbeanstalk.com:

创建 SSL 证书时

我从 ACM 得到这个错误:

如何为 Elastic Beanstalk URL 创建 SSL 证书?

p.s。我还尝试为我的 firebase URL https://studileih-ceb70.web.app/ 颁发证书,但这个已经默认使用 Https。此外,我无法找到如何 DNS/Email 在 firebase 控制台中验证 ACM 请求。但我想我需要一个 Elastic Beanstalk 后端的证书,位于 studileih1.eu-central-1.elasticbeanstalk.com,而不是 firebase 前端,对吗?

p.p.s。我真的不需要使用 https,所以一个解决方案是让 firebase 使用 http 而不是 https,但我找不到任何关于如何做到这一点的信息。

更新:

我添加了一个名为 api.studileih.de (the immediate access is blocked by spring security, as you're not logged in to my site, but you can test it with api.studileih.de/products 的子域,因为这个 API 无需登录即可访问)。然后我按照 Mark B 的建议通过向子域添加 CNAME 将该子域重定向到我的 AWS 负载均衡器:

(这里不能改成英文,抱歉)

这是我的负载均衡器:

我试图将 DNS 名称作为 A 记录放入我的子域,但只能在那里输入 IP4 地址,所以我将其输入为 CNAME。我也试图找出负载均衡器的 IP 地址,但负载均衡器没有静态 IP 地址。

不幸的是,这种使用子域和 CNAME 的方法没有奏效,所以我仍在寻找解决方案...

(这里是设置A-Record的菜单。你只能在那里输入IP地址:)

I know the problem exists because when creating the SSL certificate, I entered studileih.de as the domain that the certificate is for. I think I have to create a SSL certificate for studileih1.eu-central-1.elasticbeanstalk.com instead.

您只能为您拥有的域创建 SSL 证书。您需要将 studileih.de 的子域指向 Elastic Beanstalk 负载均衡器,例如 api.studileih.de,然后将 SSL 证书附加到与该子域匹配的负载均衡器。