HTTPS 健康检查与 GCE 实例的 HTTPS 连接之间的关系

Relationship between HTTPS Healthchecks and an HTTPS connection to a GCE Instance

我正在设置 HTTPS Load Balancing (LB) on Google Compute Engine (GCE). Key components are outlined in the Overview Diagram

在成功创建一个 HTTP 后端服务后,其中 1 of 1 (GCE) 实例是健康的,我决定对 HTTPS 做同样的事情。我正在使用开发人员控制台 UI 来执行此操作。

Healtheck "wizard" 为带有 HTTP 和 HTTPS 选项的协议提供下拉菜单:

成功的 HTTP Heathcheck 使用路径 :8080/admin/healthcheck。 据推测,HTTPS Healtheck 将使用路径 :443/admin/healthcheck。问题是我的 HTTPS 健康检查失败了。这是预料之中的,因为在浏览器中访问 https://[INSTANCE_IP]:443/admin/healthcheck 时,它无法连接。所以我没想到 Healthcheck 会将实例标记为健康。

如何通过 TLS 连接到 https://[INSTANCE_IP]:443/admin/healthcheck,我是否只需要上传证书并在开发者控制台中创建证书资源(我怀疑)?

我觉得也是概念问题。

URL https://[INSTANCE_IP]:443/admin/healthcheck 确实存在,我认为是因为实例没有实现TLS,所以健康检查失败。

上传证书(即创建证书资源)与特定GCE实例接受HTTPS请求从而HTTPS HealthCheck通过之间有什么关系?

重读documentation后,说明:

The client SSL session terminates at the load balancer. Sessions between the load balancer and the instance can either be HTTPS (recommended) or HTTP. If HTTPS, each instance must have a certificate.

这是我试图实现的最后一句话,因为 HTTPS 健康检查使用 HTTPS URL 来检查单个实例的 'health':

https://[INSTANCE_IP]:443/admin/healthcheck

由于失败,我错误地认为我需要在每个实例上实施 TLS 才能使健康检查成功。但是,我不要求每个实例都实现 TLS (HTTPS),只要求 Load Balancer。

我使用的最终配置涉及创建一个新的 HTTPS 目标代理,它指向用于 HTTP 的 same 后端服务目标代理。换句话说:2 个目标代理(HTTP 和 HTTPS),但只有一个后端服务。

由于后端服务采用了健康检查,因此唯一需要的健康检查是(原始的)不安全的健康检查,即

http://[INSTANCE_IP]:8080/admin/healthcheck

下一句很重要:

The Beta release of HTTPS load balancing only supports a single SSL certificate with a single load balancing service.

如果测试版仅支持单个 SSL 证书,我假设该证书属于 LB,因此,至少在测试版中,实际上不可能保护单个实例。