AWS Elastic Beanstalk-已添加SSL证书,但仍为HTTPS错误:SSL_ERROR_BAD_CERT_DOMAIN

问题描述

我购买了一个名为studileih.de的域,然后将Angular前端部署在了Firebase:https://studileih-ceb70.web.app/上,并从我的域studileih.de重定向到了Firebase URL。

然后,我将Spring Boot后端部署到http://studileih1.eu-central-1.elasticbeanstalk.com/

上的AWS Elastic Beanstalk

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

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

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

error message

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

(您可以通过以下方法进行尝试: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证书时:

enter image description here

我从ACM收到此错误

enter image description here

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

p.s。我还尝试为我的Firebase URL https://studileih-ceb70.web.app/颁发证书,但是认情况下该证书已经使用Https。我也找不到如何在Firebase控制台中通过DNS /电子邮件验证ACM请求。但是我认为我需要studileih1.eu-central-1.elasticbeanstalk.com上的Elastic Beanstalk后端证书,而不是Firebase前端证书,对吗?

p.p.s。我实际上并不需要使用https,因此一种解决方案是使Firebase使用http而不是https,但是我找不到有关如何执行此操作的任何东西。

更新:

添加一个名为api.studileih.de的子域(由于您尚未登录到我的网站,因此春季安全性阻止了立即访问,但是您可以使用api.studileih.de/products对其进行测试,因为此API无需登录即可访问)。然后,按照Mark B的建议,通过向子域添加CNAME将该子域重定向到我的AWS Load Balancer:

my subdomain

(抱歉,无法在那里更改为英语)

这是我的负载均衡器:

my AWS load balancer

我试图将DNS名称作为A-Record放入我的子域中,但是只能在那里输入IP4地址,所以我改用CNAME输入。我还尝试找出负载均衡器的IP地址,但是负载均衡器没有静态IP地址。

不幸的是,这种使用子域和CNAME的方法不起作用,因此我仍在寻找解决方案...

(这里是设置A记录的菜单。您只能在此处输入IP地址:)

A-Record menu at strato.de

解决方法

我知道问题存在,因为在创建SSL证书时,我 输入studileih.de作为证书所使用的域。一世 认为我必须为创建一个SSL证书 而是studileih1.eu-central-1.elasticbeanstalk.com。

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