mag*_*ged 4 python ssl grpc grpc-python
您如何使用 gRPC python auth 库进行客户端和服务器身份验证?这些文档仅涵盖服务器身份验证。
是否grpc.secure_channel()需要使用其他标志?
服务器端,需要具备:
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_key并且cert_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_chain以及cert_key用于验证客户端。