gRPC python客户端身份验证示例

时间:2018-10-23 18:09:39

标签: python ssl grpc grpc-python

您如何将gRPC python auth库用于客户端和服务器身份验证? docs仅涵盖服务器身份验证。

grpc.secure_channel()中是否需要使用其他标志?

1 个答案:

答案 0 :(得分:2)

服务器端,需要具备:

server_credentials = grpc.ssl_server_credentials(
    ((private_key, cert_chain),), root_cert, require_client_auth=True)
server.add_secure_port('%s:%d' % (ip, port), server_credentials)

root_cert是用于验证客户端证书的根CA。 private_keycert_chain将是服务器用于客户端验证的证书。

和客户端:

creds = grpc.ssl_channel_credentials(
        certificate_chain=cert_chain, private_key=cert_key, root_certificates=root_ca)
channel = grpc.secure_channel('%s:%d' % (hostname, port), creds)        

其中root_ca是验证服务器证书链的根CA,cert_chaincert_key用于验证客户端。