New to gRPC and couldn't really find any example on how to enable SSL on the server side. I generated a key pair using openssl but it complains that the private key is invalid.
D0608 16:18:31.390303 Grpc.Core.Internal.UnmanagedLibrary Attempting to load native library "...grpc_csharp_ext.dll"
D0608 16:18:31.424331 Grpc.Core.Internal.NativeExtension gRPC native library loaded successfully.
E0608 16:18:43.307324 0 ..srccorelibsissl_transport_security.c:644: Invalid private key.
E0608 16:18:43.307824 0 ..srccorelibsecuritysecurity_connector.c:821: Handshaker factory creation failed with TSI_INVALID_ARGUMENT.
E0608 16:18:43.307824 0 ..srccoreextransportchttp2serversecureserver_secure_chttp2.c:188: Unable to create secure server with credentials of type Ssl.
Here's my code
var keypair = new KeyCertificatePair(
File.ReadAllText(@"root-ca.pem"),
File.ReadAllText(@"ssl-private.key"));
SslServerCredentials creds = new SslServerCredentials(new List<KeyCertificatePair>() {keypair});
Server server = new Server
{
Services = { GrpcTest.BindService(new GrpcTestImpl()) },
Ports = { new ServerPort("127.0.0.1", Port, creds) }
};
See Question&Answers more detail:os