gRPC 客户端-->ALB--->服务器

gRPC 客户端-->ALB--->服务器

我有一个 gRPC 客户端,其 Python 代码如下,并通过 ALB 进行 gRPC 调用,但看到 ssl 握手错误。我在客户端证书目录中有根证书,但握手仍然失败。

客户端 gRPC Python 代码:

导入 grpc 导入 helloworld_pb2 导入 helloworld_pb2_grpc

def run(): # 注意(gRPC Python 团队):.close() 可以在通道上使用,并且应该在 with 语句不符合代码需求的情况下使用。 print("将尝试向世界打招呼...") creds = grpc.ssl_channel_credentials(root_certificates=None, private_key=None, certificate_chain=None) with grpc.secure_channel('alb_dns_name:443', creds) as channel: stub = helloworld_pb2_grpc.GreeterStub(channel) response = stub.SayHello(helloworld_pb2.HelloRequest(name="you")) print("Greeter client received: " + response.message)

如果姓名==”主要的“:logging.basicConfig()运行()

流程如下,ALB 具有 https/443 监听器和 gRPC 目标组

客户端----->ALB----->Grpc 服务器

拨打电话时出现以下错误:

E1230 20:45:56.633317836 3420 ssl_transport_security.cc:1511] 握手失败,出现致命错误 SSL_ERROR_SSL:错误:1000007d:SSL 例程:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED。E1230 20:45:56.637107019 3420 ssl_transport_security.cc:1511] 握手失败,出现致命错误 SSL_ERROR_SSL:错误:1000007d:SSL 例程:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED。回溯(最近一次调用最后一次):文件“/home/ec2-user/grpc/examples/python/helloworld/grpc/examples/python/helloworld/greeter_client.py”,第 39 行,在运行()中文件“/home/ec2-user/grpc/examples/python/helloworld/grpc/examples/python/helloworld/greeter_client.py”,第 33 行,在运行响应 = stub.SayHello(helloworld_pb2.HelloRequest(name =“you”))文件“/home/ec2-user/grpc/examples/python/helloworld/venv/lib64/python3.9/site-packages/grpc/_channel.py”,第 1160 行,在称呼 返回 _end_unary_response_blocking(state、call、False、None) 文件“/home/ec2-user/grpc/examples/python/helloworld/venv/lib64/python3.9/site-packages/grpc/_channel.py”,第 1003 行,在 _end_unary_response_blocking 中引发 _InactiveRpcError(state) # pytype:disable=not-instantiable grpc._channel._InactiveRpcError:<_InactiveRpcError of RPC that cease with: status = StatusCode.UNAVAILABLE details =“无法连接到所有地址;最后一个错误:UNKNOWN:ipv4:13.55.220.127:443:Ssl 握手失败:SSL_ERROR_SSL:错误:1000007d:SSL 例程:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED” debug_error_string =“未知:从对等方收到错误{created_time:“2023-12-30T20:45:56.637312405 + 00:00”,grpc_status:14,grpc_message:“无法连接到所有地址;最后一个错误:未知:ipv4:13.55.220.127:443:SSL握手失败:SSL_ERROR_SSL:错误:1000007d:SSL例程:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED”}”

Openssl 工作正常,curl 也工作正常,我得到了 464 状态代码,但是 gRPC 失败并显示 SSL 失败代码。

对此有什么想法

相关内容