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 Elastic Beanstalk - NodeJS:在没有 Beanstalk 负载均衡器的情况下从 Letsencrypt 获取证书 SSL