HTTPS运行状况检查与GCE实例的HTTPS连接之间的关系

时间:2015-06-11 14:38:41

标签: load-balancing google-compute-engine

我在HTTPS Load Balancing (LB)设置Google Compute Engine (GCE)。关键组件在Overview Diagram中列出。

成功创建一个1(1)(GCE)实例正常的HTTP后端服务后,我决定对HTTPS执行相同的操作。我使用Developer Console UI来执行此操作。

Healtheck"向导"使用选项HTTP和HTTPS提供协议的下拉菜单:

enter image description here

成功的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通过?

1 个答案:

答案 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,因此,至少在测试版中,它实际上不可能保护单个实例。