amazon-web-services - Angular AWS APP中的ERR_CERT_COMMON_NAME_INVALID

标签 amazon-web-services rest api ssl web-applications

我有一个 Angular - Spring Boot 应用程序。在后端(Spring Boot 应用程序)能够在 AWS 负载均衡器上使用 AWS jar 装 SSL 证书(“example.com”),该负载均衡器监听 443 端口上的传入 https 流量。另一方面,在前端(Angular 应用程序)中,我有一个使用相同 SSL 证书(“example.com”)的 S3 站点。

当我去 https://example.com我的网站加载正常,并通过 url 显示 https 安全绿色标签(前端使用也使用 SSL 证书(“example.com”))。

但是,当我的前端转到负载均衡器的地址时,它看起来像:

https://load-balancer-xxxxxx.us-east-1.elb.amazonaws.com

换句话说,当我的前端向后端请愿时,我收到以下错误:
net::ERR_CERT_COMMON_NAME_INVALID

然后是由于我的网站的认证 url 不包含域 *.amazonaws.com 导致的错误吗?如果这是原因。如何防止浏览器显示 ERR_CERT_COMMON_NAME_INVALID?如果有必要,前端将从 https://example 发出请求至https://load-balancer-xxxxxx.us-east-1.elb.amazonaws.com

那是我的 DNS 配置:

enter image description here

注意:我已经安装了单域 SSL 证书。

最佳答案

我已经在其他地方发布了这个答案,但我也想在这里发布
我已经花了大约一周的时间尝试自己解决这些问题——我使用的是 React 而不是 Angular,但步骤应该是相同的。
这是我解决它的方法,其中一些也可能对你有用。它最终主要是配置问题。
这里的关键之一是您需要已经拥有一个域,并且您需要能够修改域的 DNS。大多数主机将允许您这样做。所以我拥有www.example.com我需要做的是创建一个CNAME路由的 DNS 记录 ops.example.comemy-site.my-aws-region-1.elasticbeanstalk.com然后,当我在 AWS Cert Manager 中创建我的 SSL 证书时,我给它的名称是 ops.example.com但理论上 *.example.com本来也可以的。
然后,最终成为整个事情的关键是,为了使 HTTPS 工作,您的负载均衡器必须在 443 上监听 HTTPS,并在 80 上通过 HTTP 路由到实例。
亚马逊试图告诉我这一点,但因为我是个菜鸟,而且因为他们的教程是我整个职业生涯中读过的最糟糕的教程,他们实际上并没有将你的任何安全端口暴露给互联网。这实际上很好,因为您的流量一直被加密到负载均衡器,然后在此之后,即使它不再是 HTTPS,它也已经在亚马逊的服务器上,因此它的安全性并没有降低。
希望这里有帮助!

关于amazon-web-services - Angular AWS APP中的ERR_CERT_COMMON_NAME_INVALID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54954917/

相关文章:

amazon-web-services - ELB可以根据URL重定向请求吗?

javascript - 所有主流浏览器上的 SVG Amazon S3 CORS 问题

jquery - 通过 AJAX Post 将文件输入作为 FileReader 二进制数据发布

api - Vue.js - 从 ajax 调用加载组件

api - 如何在 Twitter 状态更新中嵌入 iframe

java - Android JSON 对象返回 null

windows - (OS 10048) 通常只允许每个套接字地址(协议(protocol)/网络地址/端口)使用一次。 Windows Apache

amazon-web-services - 如何通过CloudWatch规则触发部署StepFunciton?

javascript - 如何自动/动态导入自己的 angularjs javascript 文件?

python - 如何使用 Flask-restful 中止未知参数?