如何调试 AWS 负载均衡器上子域的 https 问题?

问题描述 投票:0回答:1

我创建了一个新的子域用于在 aws 上暂存。在浏览器上我无法访问

https://staging.mysite.co
。我可以访问
http://staging.mysite.co
,但没有提供任何资产(因为所有资产均通过 https 提供)。我的常规生产应用程序通过同一负载均衡器上的 HTTP 和路由 53 运行良好

设置方式如下;

  • DNS 通过 Route 53。
  • 我有一个负载均衡器,用于管理 mysite.co 上的生产和 staging.mysite.com 上的暂存。
  • 有两个弹性 beanstalk 环境(一个用于登台,一个用于生产),每个环境都具有相同的安全组和自己的目标组。

更多详情 53 号公路

  • 有3条A记录; mysite.co、www.mysite.co(均路由到生产 EB 环境)和 staging.mysite.co(路由到临时 EB 环境)
  • 我已经从 Amazon Certificate Manager 获得了一份针对 mysite.co 和 www.mysite.co
  • 的证书
  • 我为 *.mysite.co 创建了一个新证书

负载均衡器

  • 负载均衡器上有两个监听器,一个用于端口 80/Http,一个用于端口 443/HTTPS
  • 443端口监听有两条规则; -- 查找 HTTP 主机标头的是 staging.mysite.co 并将其路由到暂存目标组。 -- 将所有内容路由到生产目标组的默认规则(最后应用)
  • 侦听器的默认证书是 mysite.co / www.mysite.co 之一。侦听器还拥有 SNI 的侦听器证书,这是新的 staging.mysite.co 证书。

这是我尝试过的

  • 挖掘 https://mysite.co / www.mysite.co / staging.mysite.co。我不确定我能从这些中推断出什么,但它们看起来都非常接近相同。下面的示例包含一些已编辑的数据
; <<>> DiG 9.10.6 <<>> https://www.-------.co
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 13597
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;https://www.------.co.     IN  A

;; AUTHORITY SECTION:
------.co.      900 IN  SOA ns-1960.awsdns-53.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

;; Query time: 50 msec
;; SERVER: 192.168.86.1#53(192.168.86.1)
;; WHEN: Thu Dec 14 16:57:17 PST 2023
;; MSG SIZE  rcvd: 135
  1. 在sslabs上做了测试。回复见下图 SSLLAbs screenshot

  2. 设置 S3 存储桶来捕获负载均衡器日志。再说一次,我不太确定在这里要寻找什么,但这里有一个片段显示了我认为相关的未映射连接错误。

2023-12-15T01:16:16.711764Z 98.210.29.111 54026 443 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 0.103 "-" - - Success
2023-12-15T01:19:33.796535Z 66.160.133.230 43039 443 TLSv1.1 ECDHE-RSA-AES128-SHA - "-" - - Failed:UnmappedConnectionError

可能是这些问题吗?

  • 负载均衡器443监听器无法使用正确的证书?我知道它适用于生产环境(使用默认的 mysite.co 证书),但也许它不使用 staging.mysite.co 环境的 *.mysite.co 证书。
  • 证书之间存在冲突? *.mysite.co 和 mysite.co/www.mysite.co?

如果我可以提供更多信息,请告诉我!

编辑

  • 视频表明,如果负载均衡器发现目标组不健康(心跳测试失败),则该目标组将被忽略。两个目标群体都不健康,所以我修复了心跳。两人现在都很健康,但我仍然无法到达
    https://staging.mysite.co
amazon-web-services amazon-ec2 amazon-elastic-beanstalk aws-application-load-balancer aws-route53
1个回答
0
投票

我似乎找到了答案(并且一路上学到了很多东西!)

Route 53 A 记录不指向负载均衡器,而是直接指向 Elastic beanstalk 环境。换句话说,负载均衡器没有被使用,并且 https 证书可能没有与请求关联。

一旦我将暂存 A 记录更改为指向负载均衡器,我就能够访问

https://staging.mysite.co

© www.soinside.com 2019 - 2024. All rights reserved.