1

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」に使用するファイルはどれですか。

更新しました。

4

1 に答える 1