我一直在尝试使用 ssl 为简单的 Java gRPC 应用程序设置服务器端身份验证。我使用 certstrap 生成密钥和证书,如下所示:
# Create CA
$ certstrap init --common-name "GRPC"
# Create cert for host using DNS name
$ certstrap request-cert --common-name sdl10236.labs.teradata.com
$ certstrap sign server.com --CA "GRPC"
# gives the following files:
$ GRPC.crl GRPC.crt GRPC.key server.crt server.csr server.key
Run Code Online (Sandbox Code Playgroud)
我有以下 java 代码,是我从他们的 hello world 示例和一些单元测试中拼凑而成的,因为我找不到如何执行此操作的完整示例。
private SslProvider sslProvider = SslProvider.OPENSSL;
...
this.clientContextBuilder = GrpcSslContexts.configure(SslContextBuilder.forClient(), this.sslProvider);
try {
this.serverCertFile = this.loadCert("server.crt");
this.serverPrivateKeyFile = this.loadCert("server.key");
this.serverTrustedCaCerts = new X509Certificate[]{this.loadX509Cert("GRPC.crt")};
} catch (IOException ex) { …Run Code Online (Sandbox Code Playgroud)