AWS SSL Beanstalk 主机名不匹配

Posted

技术标签:

【中文标题】AWS SSL Beanstalk 主机名不匹配【英文标题】:AWS SSL Beanstalk Hostname not matching 【发布时间】:2021-08-17 08:36:07 【问题描述】:

我按照以下教程设置 SSL 证书,其中 父域托管在另一个提供商,而不是 aws,以创建与 我的 REST Api。 https://medium.com/@sonalishah_63223/how-to-host-subdomain-in-aws-route-53-for-an-existing-parent-domain-with-different-service-9b4dde061b85

设置:

托管区域 -> 记录指向 - 弹性负载均衡器 - Beanstalk -> EC2(Spring 应用程序)

设置说明:

我创建了一个托管区域 (sub.mydomain.at)。 在该托管区域中,我创建了一条指向 Elastic Load Balancer 的记录 (api.sub.mydomain.at)。

一切正常,API 可调用。

之后我通过 ACM 创建了一个证书。 (*.mydomain.at) 已成功发布。

通过 https:// 调用 API 时,我将它附加到我的负载均衡器,它似乎可以工作。 但是Postman 抛出以下错误

SSL Error: Hostname/IP does not match certificate's altnames

我可以关闭“启用 SSL 证书验证”,它会起作用,但这似乎不是正确的解决方案。 因此,我为未验证的域 api.sub.mydomain.at 创建了另一个证书。根据nslookup,即使设置了 CNAME,服务器也找不到域。 (我认为不可能创建具有多个“子域”的 CNAME) _12312<long-_number>.api.sub.mydomain.at

那么我该如何解决“主机名/IP 与证书替代名称不匹配”的问题?

【问题讨论】:

【参考方案1】:

我认为在您的情况下,您正在转发请求(cname 记录 api.sub.mydomain.at 从 alb 公共 dns 到您的自定义域) 所以你需要像这样在监听器上添加 ALB 公共 dns 名称:

request(host: 'ALB public DNS'... headers: req.headers 

【讨论】:

以上是关于AWS SSL Beanstalk 主机名不匹配的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk httpd/conf.d/ssl.conf 无法识别

AWS Beanstalk SSL 负载平衡环境

AWS Beanstalk IIS 实例和强制 SSL

AWS Elastic Beanstalk - NodeJS:在没有 Beanstalk 负载均衡器的情况下从 Letsencrypt 获取证书 SSL

在 AWS Elastic Beanstalk 上安装通配符 SSL 证书

AWS Certificate Manager 和 Elastic Beanstalk:创建没有域名的 SSL