如何在 Google Cloud Load Balancer 上记录 SSL/TLS 握手详细信息

How to log SSL/TLS Handshake details on Google Cloud Load Balancer

为了确定我们的客户端正在连接的 TLS 版本,我需要在 Google 云负载均衡器(GKE 入口)上记录有关 SSL/TLS 握手的详细信息。

记录 TLS/SSL 版本将是很好的第一步。我需要在第二步中确定请求来自哪个用户。

默认情况下,仅记录 httpRequest 但不包含有关握手的信息。

httpRequest: {
 latency: "0.077152s"
 remoteIp: "1.2.3.4"
 requestMethod: "POST"
 requestSize: "256988"
 requestUrl: "https://api.foo.bar/v1.0/foo"
 responseSize: "22746"
 serverIp: "1.2.3.4"
 status: 200
 userAgent: "axios/0.20.0"
}

要了解客户端请求的 tls_version,您可以创建自定义 header,按照 GCP Documentation 创建自定义 header 并分配变量“{ tls_version}”。此配置更改需要几分钟才能实现。

还要确保自定义名称 header 满足上述所有要求 here

当外部 HTTP(S) 负载均衡器向后端发出请求时,负载均衡器会添加请求 headers。 {tls_version} 将扩展客户端和负载均衡器在 SSL 握手期间协商的 TLS 版本。

您还可以通过后台日志查看TLS版本

注意:您必须在 'COMPATIBLE' 模式下创建 ,SSL Policy 才能启用 TLS 版本 1.0 和 1.1。