[英]AWS Elastic Beanstalk - SSL Certificate added but still HTTPS Error: SSL_ERROR_BAD_CERT_DOMAIN
我购买了一个名为studioih.de的域名,然后我在firebase 上部署了我的 Angular 前端: https ://studileih-ceb70.web.app/ 并从我的域名 studioih.de 重定向到 firebase URL。
然后我将我的 Spring Boot 后端部署到AWS Elastic Beanstalk
: http : //studileih1.eu-central-1.elasticbeanstalk.com/
-> 问题:由于 firebase 上的前端使用https
而 AWS 上的后端使用http
我收到了Mixed content error
。 前端无法加载任何后端数据。
因此,我尝试通过在AWS Certificate Manager (ACM) 中为我的后端创建 SSL 证书并将其添加到我的 Elast Beanstalk Load Balancer
来解决此问题。 这行得通,我现在至少可以建立从前端到后端的连接。
但是现在,每当向我的后端发送请求时,我都会收到此错误:
当我单击“接受风险并继续”一次时,它工作正常并且我的所有后端数据都已加载。 但我不能要求我的用户这样做。
(您可以通过以下方式尝试: https : //studileih1.eu-central-1.elasticbeanstalk.com/products并在您之后单击“高级”->“接受风险并继续”(如果您敢 ^^)已经这样做了,单击studileih.de ,它现在将加载后端数据。)
我知道问题存在,因为在创建 SSL 证书时,我输入了studileih.de作为证书的域。 我想我必须为studileih1.eu-central-1.elasticbeanstalk.com创建一个SSL 证书。 但是当我尝试为stdileih1.eu-central-1.elasticbeanstalk.com创建 SSL 证书时:
我从 ACM 收到此错误:
如何为 Elastic Beanstalk URL 创建 SSL 证书?
ps 我还尝试为我的 firebase URL https://studleih-ceb70.web.app/颁发证书,但默认情况下这个证书已经使用 Https。 此外,我无法找到如何在 Firebase 控制台中通过 DNS/电子邮件验证 ACM 请求。 但是我想我需要一个用于位于studileih1.eu-central-1.elasticbeanstalk.com 的Elastic Beanstalk 后端的证书,而不是用于firebase 前端的证书,对吗?
pps 我真的不需要使用https
,所以一个解决方案是让 firebase 使用 http 而不是 https,但我找不到任何关于如何做到这一点的信息。
更新:
我添加了一个名为api.studileih.de的子域(即时访问被 spring security 阻止,因为你没有登录我的网站,但你可以用api.studleih.de/products测试它,因为这个 API 是可访问的无需登录)。 然后我按照 Mark B 的建议将该子域重定向到我的 AWS 负载均衡器,方法是向子域添加 CNAME:
(那里不能改成英文,抱歉)
这是我的负载均衡器:
我试图将 DNS-Name 作为 A-Record 放入我的子域中,但只能在那里输入 IP4 地址,所以我将其输入为 CNAME。 我还试图找出负载均衡器的 IP 地址,但负载均衡器没有静态 IP 地址。
不幸的是,这种使用子域和 CNAME 的方法不起作用,所以我仍在寻找解决方案......
(这是设置A-Record的菜单。您只能在那里输入IP地址:)
我知道问题存在,因为在创建 SSL 证书时,我输入了studileih.de 作为证书的域。 我想我必须为studileih1.eu-central-1.elasticbeanstalk.com 创建一个SSL 证书。
您只能为您拥有的域创建 SSL 证书。 您需要在 Elastic Beanstalk 负载均衡器上指向 stdileih.de 的子studileih.de
,例如api.studileih.de
,然后将 SSL 证书附加到与该子域匹配的负载均衡器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.