2017-05-26 19 views
0

如何在.net中爲grpc啓動並運行服務器端身份驗證? 一直在生成證書和嘗試不同的設置,我已經厭倦了。無需SSL即可正常工作。如何在.net中使用SSL安裝grpc

這是最後一次嘗試我做,讓我錯誤

Status(StatusCode=Unavailable, Detail="Connect Failed" 

證證書這樣

openssl genrsa -out server.key 2048 
openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650 

服務器

 const int port = 50052; 

     var serverimpl= new Server 
     { 
      Services = 
      { 
       TestServer.BindService(new TestServerImpl()) 
      }, 
      Ports = 
      { 
       new ServerPort("localhost", port, new SslServerCredentials(new List<KeyCertificatePair> 
       { 
        new KeyCertificatePair 
        (
         File.ReadAllText(@"server.crt"), 
         File.ReadAllText(@"server.key") 
        ) 
       })) 
      } 
     }; 
     serverimpl.Start(); 

     Console.WriteLine("Test server listening on port " + port); 
     Console.WriteLine("Press any key to stop the server..."); 
     Console.ReadKey(); 

     serverimpl.ShutdownAsync().Wait(); 

客戶

 var channel = new Channel("127.0.0.1", 50052, new SslCredentials(File.ReadAllText("server.crt"))); 
     var client = new TestServer.TestServiceClient(channel); 



     var result = client.TestCall(new Query 
     {  
      From = DateTime.UtcNow.AddDays(-10).Ticks, 
      To = DateTime.UtcNow.Ticks 
     }); 

     channel.ShutdownAsync().Wait(); 

回答