【问题标题】:Unable to Establish Insecure gRPC connection on the New AWS gRPC ELB无法在新的 AWS gRPC ELB 上建立不安全的 gRPC 连接
【发布时间】:2020-12-27 11:22:34
【问题描述】:

AWS ALB 根据 Link 新增了对 gRPC 负载平衡的支持

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

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

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

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

【问题讨论】:

    标签: amazon-web-services grpc amazon-elb


    【解决方案1】:

    撞! ALB 需要哪些配置支持 GRPC 请求的 TLS 终止?我宁愿避免防火墙/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 客户端前言字符串丢失或损坏。接收字节的十六进制转储:16030100ac010000a80303496e418aff3efff4c9244b9ae2

    Connection Error io.netty.handler.codec.http2.Http2Exception: HTTP/2 client preface string missing or corrupt. Hex dump for received bytes:

    【讨论】:

    • 似乎可以将目标组配置为使用 HTTP(不是 HTTPS)。那是好消息!但是,健康检查仅适用于非检查(“/”返回 12 方法未找到)并且请求不会路由到后端服务器。如何调试此类问题?
    【解决方案2】:

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

    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 别名端点匹配。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-09
      • 2021-07-16
      • 2018-12-03
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 2019-10-31
      相关资源
      最近更新 更多