我在HTTPS Load Balancing (LB)设置Google Compute Engine (GCE)。关键组件在Overview Diagram中列出。
成功创建一个1(1)(GCE)实例正常的HTTP后端服务后,我决定对HTTPS执行相同的操作。我使用Developer Console UI来执行此操作。
Healtheck"向导"使用选项HTTP和HTTPS提供协议的下拉菜单:
成功的HTTP Heathcheck使用路径:8080/admin/healthcheck
。
据推测,HTTPS Healtheck将使用路径:443/admin/healthcheck
。问题是我的HTTPS Healthchecks失败了。这是因为在浏览器中访问https://[INSTANCE_IP]:443/admin/healthcheck
时无法连接。所以我没想到Healthcheck会将实例标记为健康。
如何通过TLS连接https://[INSTANCE_IP]:443/admin/healthcheck
,我是否只需上传证书并在开发者控制台中创建证书资源(我对此表示怀疑)?
我认为这也是一个概念问题。
URL https://[INSTANCE_IP]:443/admin/healthcheck
确实存在,我认为因为实例没有实现TLS,Healthcheck失败了。
上传证书(即创建证书资源)与接受HTTPS请求的特定GCE实例之间的关系是什么,以便HTTPS HealthCheck通过?
答案 0 :(得分:0)
重新阅读documentation后,会说明:
客户端SSL会话终止于负载均衡器。会议 负载均衡器和实例之间可以是HTTPS (推荐)或HTTP。如果是HTTPS,则每个实例都必须具有 证书。
这是我尝试实现的最后一句话,因为HTTPS Healthchecks使用HTTPS网址来检查健康状况'个别实例:
https://[INSTANCE_IP]:443/admin/healthcheck
由于这是失败的,我错误地认为我需要在每个实例上实现TLS以使Healthcheck成功。但是,我不要求每个实例都实现TLS(HTTPS),只需要Load Balancer。
我使用的最终配置涉及创建新的HTTP S 目标代理,它指向用于HTTP目标代理的相同后端服务。换句话说:2个目标代理(HTTP和HTTPS),但只有一个后端服务。)
由于Healthecks由后端服务部门使用,因此唯一需要的Healthcheck是(原始)不安全的健康检查,即
http://[INSTANCE_IP]:8080/admin/healthcheck
下一句话很重要:
HTTPS负载平衡的Beta版仅支持单个SSL 具有单一负载平衡服务的证书。
如果测试版仅支持单个SSL证书,我认为此证书属于LB,因此,至少在测试版中,它实际上不可能保护单个实例。