使用gRPC作为云平台和移动前端的连接方式,网络安全应该是必须考虑的一个重点。gRPC是支持ssl/tls安全通讯机制的。用了一个周末来研究具体使用方法,实际上是一个周末的挖坑填坑过程。把这次经历记录下来与各位分享。
gRPC的ssl/tls的原理是在服务端安装安全证书公用certificate和私钥key, 在客户端安装公共证书就可以了,gRPC代码是这样写的:
// Server SslContext sslContext = SslContextBuilder.forServer( new File("/Users/u/Desktop/api.grpc/src/main/resources/my-public-key-cert.pem"), new File("/Users/u/Desktop/api.grpc/src/main/resources/my-private-key.pem")) .build(); server = NettyServerBuilder.forPort(port).sslContext(sslContext) .addService(GreeterGrpc.bindService(new GreeterImpl())).build() .start(); / Client SslContext sslContext = SslContextBuilder.forClient().trustManager(new File( "/Users/u/Desktop/api.grpc/src/main/resources/my-public-key-cert.pem")).build(); channel = NettyChannelBuilder.forAddress(host, port) .sslContext(sslContext) .build(); blockingStub = GreeterGrpc.newBlockingStub(channel);