无法在新的 AWS gRPC ELB 上建立不安全的 gRPC 连接

Unable to Establish Insecure gRPC connection on the New AWS gRPC ELB

A​​WS ALB 根据此 Link

对 gRPC 负载平衡提供了新的支持

所有的解释都表明在客户端和服务器之间使用 ssl 连接。现在,如果客户端是浏览器,这可能是必需的,但在内部 ALB 和内部服务通信的情况下,我不希望有安全连接。

这可能吗/有没有人得到更多关于如何在没有 ssl 的情况下进行负载平衡的信息?

我的理解: 选择您的域名,生成证书。在 Route 53(相同域名)中为此添加别名,并使用客户端和服务器中的证书在内部 ELB 中进行内部服务通信。

这是唯一可行的方法吗?我还必须管理这个证书。

顶一下! ALB 的哪些配置需要支持 GRPC 请求的 TLS 终止?我宁愿避免 firewall/ALB.

背后的加密开销

Bloom RPC 产生此异常:

{ “错误”:“14 不可用:无法连接到所有地址” }

GRPC 失败并出现此异常:

2020-12-29 03:03:33.345 INFO 3719 --- [-worker-ELG-6-1] i.g.n.NettyServerTransport.connections:传输失败 12 月 29 日 03:03:33 ip-172-31-22-196 web:io.netty.handler.codec.http2.Http2Exception:HTTP/2 客户端前言字符串丢失或损坏。接收字节的十六进制转储:16030100ac010000a80303496e418aff3eff4c9244b9ae2

在尝试了很多东西之后,这是我的结论。

  1. 您不能向 AWS ALB 发出不安全的 gRPC 请求。
  2. 您可以从 AWS ALB 向目标组发出不安全的 gRPC 请求。

所需步骤:

服务器端: 不需要 SSL。您可以在不安全的频道上启动服务器。

客户端: 需要 SSL。 new ClientClass(<Route 53 endpoint which maps to AWS ALB Endpoint>, credentials.createSsl());

确保 AWS ALB 上的证书与 aws alb 的 Route 53 别名端点匹配。

结论: Client 通过 ALB 颁发给 Client 的证书向 ALB 发出请求。 ALB 向 TG 发出不安全请求(转发到在不安全通道上侦听的服务器 ) 您还可以使 ALB 到 TG 请求安全,这将服务器端 SSL 更改