grpc と java を使用する私のプロジェクトでは、OpenSSL を使用してクライアントとサーバー間の安全な接続を確立しています。
grpc サーバーを正常に起動できました。
ここのドキュメントでは、安全なチャネルのクライアント コードはこれであると述べています。
ManagedChannel channel = ManagedChannelBuilder.forAddress("myservice.example.com", 443)
.build();
GreeterGrpc.GreeterStub stub = GreeterGrpc.newStub(channel);
次のようにクライアントでコードを使用していますが、以下の例外がスローされています。
mChannel = ManagedChannelBuilder.forAddress(GrpcConstants.LOCAL_GRPC_CLIENT_IP, GrpcConstants.LOCAL_GRPC_CLIENT_PORT).build();
mEmployerServicesBlockingStub = EmployerServicesGrpc.newBlockingStub(mChannel);
mInviteContactsBlockingStub = InviteContactsGrpc.newBlockingStub(mChannel);
例外:
Network channel closed
at io.grpc.Status.asRuntimeException(Status.java:431)
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:157)
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:106)
次のコードでも試しました:
mChannel = NettyChannelBuilder.forAddress(GrpcConstants.LOCAL_GRPC_CLIENT_IP, GrpcConstants.LOCAL_GRPC_CLIENT_PORT).sslContext(GrpcSslContexts.forClient().trustManager(file).build()).build();
mEmployerServicesBlockingStub = EmployerServicesGrpc.newBlockingStub(mChannel);
mInviteContactsBlockingStub = InviteContactsGrpc.newBlockingStub(mChannel);
これも上記と同じ例外を与えています。ここで null ファイル参照を指定しました。
GoDaddy 証明書に使用するアプローチを教えてください。
それが最初のアプローチである場合、何が欠けていますか。
2 番目のアプローチの場合、「roots.pem」に使用するファイルはどれですか。
更新しました。