AWS Elastic Beanstalk 负载均衡器 SSL CloudFront Angular Spring Boot
AWS Elastic Beanstalk Loadbalancer SSL CloudFront Angular SpringBoot
-
amazon-web-services
-
amazon-cloudfront
-
amazon-elastic-beanstalk
-
aws-certificate-manager
-
aws-load-balancer
使用 SSL 和路由 53 配置在 Elastic Beanstalk 上部署 Springboot 并在 cloudFront 上部署 angular。
配置:
我在 AWS 的 Route 53 上有一个域,还创建了一个来自 AWS cm 的 public 证书。
我在带有负载均衡器 (LB) 的 Elastic beanstalk 上 Spring 启动。 LB 在 80 和 443 处有监听器。443 配置了我从 aws Cert Manager 创建的 SSL。我的 LB 安全组也为 https 配置了入站规则。我已经部署了我的 jar,它正在这个 URL: http://waprodservice-env-1.eba-kzqan9yr.us-east-1.elasticbeanstalk.com/
服务
我的 angular 应用程序有 s3 存储桶,静态 Web 托管在 http://waapp.s3-website.ap-south-1.amazonaws.com . I have also configured the cloud front with the SSL that I created (Same as used in EB). I have also created a A record in route 53. All is well till now, I can access my domain and I can see my angular app from my domain name www.example.com,安装了证书锁符号。
问题:
在使用 ng build --prod 构建我的 angular 应用程序时,我将 env-prod 文件中的基础 url 更改为 http://waprodservice-env-1.eba-kzqan9yr.us-east-1.elasticbeanstalk.com/ 我的 spring 引导正在服务。当我访问 www.example.com(前端)时,在 API 调用后,我收到 ERR_CERT_COMMON_NAME_INVALID 消息作为响应。我知道我的证书公用名不匹配,我尝试打开证书并能够在前端和后端 URL 中看到公用名 example.com 并且颁发者是 amazon.com。我不知道有什么不匹配的。当我访问后端 EB url 时,它在浏览器上显示不安全。但是当我从 EB 访问某些特定的 public 端点时,它甚至可以从 https link 获取我需要的数据。 ->https://waprodservice-env-1.eba-kzqan9yr.us-east-1.elasticbeanstalk.com/public/astrologer .
仅供参考,我通过提供文档中提到的 *.myexample.com、myexample.com 等值来创建证书。
缺少哪些配置?没有其他 Whosebug 帖子有帮助。大部分都试过了。
您应该将自定义域名设置为与您的 ACM 证书匹配的 Elastic Beanstalk 环境。按照您的示例,设置类似 api.myexample.com
为此,您只需在环境负载均衡器配置中添加一个指向默认进程的 https 侦听器,然后将 ACM 证书附加到侦听器(它们应该位于同一区域)
然后添加 A 记录以将 api.example.com 路由到 Elastic Beanstalk 环境
这应该可以解决 ERR_CERT_COMMON_NAME_INVALID
的问题
P.S 您还应该在负载均衡器中设置从端口 80 到 443 的重定向
非常感谢@ARBERMEJO。
所以,这就是答案。将我的 angular 构建上传到 s3 后,我使用该 s3 URL 创建了一个 CloudFront,如许多 youtube 视频所示。然后对于后端 EB,对于配置,检查上面,最后一部分是,我必须在我的域的托管区域中创建一个 A 记录。检查图片。 enter image description here
我必须在我的第二行中添加 api.mydomain.com(只需在记录名称中键入 API)并将流量路由到图中所示的负载均衡器。
神奇的部分是:您应该从您的 ANGULAR 产品构建基础 URL 调用 https://api.mydomain.com。这在很多教程中都没有提到。
如果你从前端调用你的 EB link,在我的例子中是 https://waprodservice-env-1.eba-kzqan9yr.us-east-1.elasticbeanstalk.com/ ,它会从 backend/EB LB 抛出 SSL 通用名称错误(不确定是哪个。) .
amazon-web-services
amazon-cloudfront
amazon-elastic-beanstalk
aws-certificate-manager
aws-load-balancer
使用 SSL 和路由 53 配置在 Elastic Beanstalk 上部署 Springboot 并在 cloudFront 上部署 angular。
配置:
我在 AWS 的 Route 53 上有一个域,还创建了一个来自 AWS cm 的 public 证书。
我在带有负载均衡器 (LB) 的 Elastic beanstalk 上 Spring 启动。 LB 在 80 和 443 处有监听器。443 配置了我从 aws Cert Manager 创建的 SSL。我的 LB 安全组也为 https 配置了入站规则。我已经部署了我的 jar,它正在这个 URL: http://waprodservice-env-1.eba-kzqan9yr.us-east-1.elasticbeanstalk.com/
服务我的 angular 应用程序有 s3 存储桶,静态 Web 托管在 http://waapp.s3-website.ap-south-1.amazonaws.com . I have also configured the cloud front with the SSL that I created (Same as used in EB). I have also created a A record in route 53. All is well till now, I can access my domain and I can see my angular app from my domain name www.example.com,安装了证书锁符号。
问题:
在使用 ng build --prod 构建我的 angular 应用程序时,我将 env-prod 文件中的基础 url 更改为 http://waprodservice-env-1.eba-kzqan9yr.us-east-1.elasticbeanstalk.com/ 我的 spring 引导正在服务。当我访问 www.example.com(前端)时,在 API 调用后,我收到 ERR_CERT_COMMON_NAME_INVALID 消息作为响应。我知道我的证书公用名不匹配,我尝试打开证书并能够在前端和后端 URL 中看到公用名 example.com 并且颁发者是 amazon.com。我不知道有什么不匹配的。当我访问后端 EB url 时,它在浏览器上显示不安全。但是当我从 EB 访问某些特定的 public 端点时,它甚至可以从 https link 获取我需要的数据。 ->https://waprodservice-env-1.eba-kzqan9yr.us-east-1.elasticbeanstalk.com/public/astrologer .
仅供参考,我通过提供文档中提到的 *.myexample.com、myexample.com 等值来创建证书。
缺少哪些配置?没有其他 Whosebug 帖子有帮助。大部分都试过了。
您应该将自定义域名设置为与您的 ACM 证书匹配的 Elastic Beanstalk 环境。按照您的示例,设置类似 api.myexample.com
为此,您只需在环境负载均衡器配置中添加一个指向默认进程的 https 侦听器,然后将 ACM 证书附加到侦听器(它们应该位于同一区域)
然后添加 A 记录以将 api.example.com 路由到 Elastic Beanstalk 环境
这应该可以解决 ERR_CERT_COMMON_NAME_INVALID
的问题P.S 您还应该在负载均衡器中设置从端口 80 到 443 的重定向
非常感谢@ARBERMEJO。
所以,这就是答案。将我的 angular 构建上传到 s3 后,我使用该 s3 URL 创建了一个 CloudFront,如许多 youtube 视频所示。然后对于后端 EB,对于配置,检查上面,最后一部分是,我必须在我的域的托管区域中创建一个 A 记录。检查图片。 enter image description here
我必须在我的第二行中添加 api.mydomain.com(只需在记录名称中键入 API)并将流量路由到图中所示的负载均衡器。
神奇的部分是:您应该从您的 ANGULAR 产品构建基础 URL 调用 https://api.mydomain.com。这在很多教程中都没有提到。
如果你从前端调用你的 EB link,在我的例子中是 https://waprodservice-env-1.eba-kzqan9yr.us-east-1.elasticbeanstalk.com/ ,它会从 backend/EB LB 抛出 SSL 通用名称错误(不确定是哪个。) .