私のプロジェクトではgrpcとjavaを使用していますが、OpenSSLを使ってクライアントとサーバを安全に接続しています。SSLを介してクライアントからgrpcサーバに接続できません
grpcサーバーを正常に起動できました。
安全なチャネルのためのクライアントコードは、この
ManagedChannel channel = ManagedChannelBuilder.forAddress("myservice.example.com", 443)
.build();
GreeterGrpc.GreeterStub stub = GreeterGrpc.newStub(channel);
で次のように私は、クライアントでのコードを使用していますが、以下の例外がスローされていることを言及しhereドキュメント。
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)
Iはまた、次のコードと試みた:
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"に使用するのですか。
更新されました。
お返事ありがとうございます。 grpcのドキュメントでSSL用に与えられたコードを使って、クライアント側の.crtファイルとサーバー側の秘密鍵とサーバー.crtファイルを渡して、正常に接続できました。 –
まだ別の問題がありました。クライアントは例外を出すことも、サーバーに到達することもありませんでした。何とかSSL用の同じコードがgrpc-java githubサンプルプロジェクトによって成功しました。私のプロジェクトからgrpc-javaのサンプル実装への唯一の違いは、osdetectorのバージョンです。この[issue](http://stackoverflow.com/questions/37160085/gradle-not-able-to-detect-osdetector-plugin)のためにosdetector 1.4.0を含めることができませんでした。 grpc-javaは1.4.0でしたが、graleビルド中にskipcodegen = true paramを使用して正常にビルドしていました。 –
@DivijeNarasimhachar、私はosdetectorバージョンが問題であるとは思わない。私が持っている唯一のアイデアは、サーバー側で間違ったSslContext: 'GrpcSslContexts.forClient()'を使用しているか、クライアント側で 'GrpcSslContexts.forServer()'を使用しているということです。それはタイプミスとして気づくのは本当に難しいですし、私はハングアップの原因を聞いたことがあります。 –