Esempio n. 1
0
        public static void Main(string[] args)
        {
            const int Port           = 9000;
            var       cacert         = File.ReadAllText(@"ca.crt");
            var       cert           = File.ReadAllText(@"server.crt");
            var       key            = File.ReadAllText(@"server.key");
            var       keypair        = new KeyCertificatePair(cert, key);
            var       sslCredentials = new SslServerCredentials(new List <KeyCertificatePair>()
            {
                keypair
            }, cacert, false);

            Server server = new Server
            {
                Services = { BindService(new EmployeeService()) },
                Ports    = { new ServerPort("0.0.0.0", Port, sslCredentials) }
            };

            server.Start();

            Console.WriteLine("Starting server on port " + Port);
            Console.WriteLine("Press any key to stop...");
            Console.ReadKey();

            server.ShutdownAsync().Wait();
        }
Esempio n. 2
0
        private static async Task <Server> CreateServerAsync()
        {
            var host = "127.0.0.1";
            var port = 40052;
            await Console.Out.WriteLineAsync($"Starting Grpc server on {host}:{port}");

            ServerCredentials credentials;

            // HTTP connection, no auth token
            // credentials = ServerCredentials.Insecure;

            // HTTPS connection, no auth token
            var certificateChain = await File.ReadAllTextAsync(@"certstrap-out\MyService.crt");

            var privateKey = await File.ReadAllTextAsync(@"certstrap-out\MyService.key");

            credentials = new SslServerCredentials(new[] { new KeyCertificatePair(certificateChain, privateKey) });

            var server = new Server {
                Services = { MyStackServer.BindService(new MyStackServerImpl()) },
                Ports    = { new ServerPort(host, port, credentials) }
            };

            return(server);
        }
        public async Task <ServerCredentials> Generate(string type, string configuration)
        {
            var sslConfiguration = JsonSerializerHelper.Deserialize <SSLConfiguration>(configuration);
            var cacert           = File.ReadAllText(sslConfiguration.CAFile);
            var servercert       = File.ReadAllText(sslConfiguration.ServerFile);
            var serverkey        = File.ReadAllText(sslConfiguration.KeyFile);
            var keypair          = new KeyCertificatePair(servercert, serverkey);

            SslClientCertificateRequestType clientStrategy;

            switch (sslConfiguration.ClientStrategy)
            {
            case 1:
                clientStrategy = SslClientCertificateRequestType.DontRequest;
                break;

            default:
                clientStrategy = SslClientCertificateRequestType.RequestAndRequireAndVerify;
                break;
            }

            var sslCredentials = new SslServerCredentials(new List <KeyCertificatePair>()
            {
                keypair
            }, cacert, clientStrategy);

            return(await Task.FromResult(sslCredentials));
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            const int Port   = 9000;
            var       cacert = File.ReadAllText(@"certs/ca.crt");
            var       cert   = File.ReadAllText(@"certs/server.crt");
            var       key    = File.ReadAllText(@"certs/server.key");

            var keypair = new KeyCertificatePair(cert, key);

            var sslCredentials = new SslServerCredentials(new List <KeyCertificatePair>()
            {
                keypair
            }, cacert, false);

            Server server = new Server
            {
                Ports =   //new ServerPort("0.0.0.0", Port, sslCredentials),
                {
                    new ServerPort("[::]", Port, sslCredentials)
                }                                              // listening on IP6 port 9000
            };

            server.Services.Add(BindService(new EmployeeService()));
            foreach (var service in server.Services)
            {
                Console.WriteLine($"Service: {service}");
            }
            server.Start();

            Console.WriteLine($"Starting Server on port {Port}");
            Console.WriteLine("Press any key to stop...");
            Console.ReadKey();

            server.ShutdownAsync().Wait();
        }
Esempio n. 5
0
        /// <inheritdoc />
        public void Start(IEnumerable <ServerServiceDefinition> services)
        {
            _logger.LogTrace($"[Grpc Server Layer. {_identity}] Запускается Grpc Server с конфигурацией: Host:{_config.Host.Hostname}; Port: {_config.Host.Port}; SSL: {_config.Ssl != null}");

            var credentials = ServerCredentials.Insecure;

            if (_config.Ssl != null)
            {
                var cacert     = File.ReadAllText(Path.Combine(_config.Ssl.Path, _config.Ssl.CaCert));
                var servercert = File.ReadAllText(Path.Combine(_config.Ssl.Path, _config.Ssl.CertificateChain));
                var serverkey  = File.ReadAllText(Path.Combine(_config.Ssl.Path, _config.Ssl.PrivateKey));
                var keypair    = new KeyCertificatePair(servercert, serverkey);
                credentials = new SslServerCredentials(
                    new List <KeyCertificatePair> {
                    keypair
                },
                    cacert,
                    SslClientCertificateRequestType.DontRequest);
            }

            _server = new Server(new[] { new ChannelOption(ChannelOptions.SoReuseport, 0) })
            {
                Ports = { new ServerPort(_config.Host.Hostname, _config.Host.Port, credentials) },
            };

            foreach (var definition in services)
            {
                _server.Services.Add(definition);
                _logger.LogTrace($"[Grpc Server Layer. {_identity}] Добавляется конечная точка. {definition}");
            }

            _server.Start();
            _logger.LogTrace($"[Grpc Server Layer. {_identity}] Grpc Server запущен.");
        }
Esempio n. 6
0
        static void Main(string[] args)
        {
            var cacert      = File.ReadAllText(@"..\certs\ca.crt");
            var cert        = File.ReadAllText(@"..\certs\server.crt");
            var key         = File.ReadAllText(@"..\certs\server.key");
            var keypair     = new KeyCertificatePair(cert, key);
            var credentials = new SslServerCredentials(new List <KeyCertificatePair>
            {
                keypair
            }, cacert, false);

            Server server = new Server
            {
                Services = { KnockKnock.KnockKnockService.BindService(new KnockKnockService()) },
                Ports    = { new ServerPort("0.0.0.0", Port, credentials) }
            };

            server.Start();

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

            server.ShutdownAsync().Wait();
        }
Esempio n. 7
0
        public static void Main(string[] args)
        {
            XmlConnector.Path = args.Length == 0 ? Directory.GetCurrentDirectory() : args[0];

            var cacert         = File.ReadAllText(@"/keys/ca.crt");
            var servercert     = File.ReadAllText(@"/keys/server.crt");
            var serverkey      = File.ReadAllText(@"/keys/server.key");
            var keypair        = new KeyCertificatePair(servercert, serverkey);
            var sslCredentials = new SslServerCredentials(new List <KeyCertificatePair>()
            {
                keypair
            }, cacert, false);


            var transaqConnectorImpl = new TransaqConnectorImpl();
            var server = new Server
            {
                Services = { TransaqConnector.BindService(transaqConnectorImpl) },
                Ports    = { new ServerPort("0.0.0.0", Port, sslCredentials) }
            };

            XmlConnector.Init(str =>
            {
                transaqConnectorImpl.OnMsg(str);
                return(str);
            });

            server.Start();

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

            server.ShutdownAsync().Wait();
        }
Esempio n. 8
0
        /// <summary>
        /// init pem storage
        /// and try to start servers if configuration set.
        /// </summary>
        /// <param name="dir"></param>
        public void Init(string dir = "")
        {
            if (!GrpcLocalConfig.Instance.ParentChainServer && !GrpcLocalConfig.Instance.SideChainServer)
            {
                return;
            }
            try
            {
                _certificateStore = dir == "" ? _certificateStore : new CertificateStore(dir);
                var keyCertificatePair = GenerateKeyCertificatePair();
                // create credentials
                _sslServerCredentials = new SslServerCredentials(new List <KeyCertificatePair> {
                    keyCertificatePair
                });
            }
            catch (Exception e)
            {
                _logger.Error(e, "Exception while init ServerManager.");
                throw;
            }

            // start servers if possible
            StartSideChainServer();
            StartParentChainServer();
        }
Esempio n. 9
0
        public static void Main(string[] args)
        {
            //Environment.SetEnvironmentVariable("GRPC_TRACE", "all");
            Environment.SetEnvironmentVariable("GRPC_VERBOSITY", "debug");
            GrpcEnvironment.SetLogger(new ConsoleLogger());

            //https://stackoverflow.com/questions/37714558/how-to-enable-server-side-ssl-for-grpc
            var cacert     = File.ReadAllText(@"C:\Users\ABOK078\Desktop\gRPC presentation\Grpc-Demo\cert\ca.crt");
            var servercert = File.ReadAllText(@"C:\Users\ABOK078\Desktop\gRPC presentation\Grpc-Demo\cert\server.crt");
            var serverkey  = File.ReadAllText(@"C:\Users\ABOK078\Desktop\gRPC presentation\Grpc-Demo\cert\server.key");
            var keypair    = new KeyCertificatePair(servercert, serverkey);

            var credentials = new SslServerCredentials(new[] { keypair }, cacert, true);

            Server server = new Server
            {
                Services = { MarketData.BindService(new RandomMarketDataService()) },
                //Ports = { new ServerPort("0.0.0.0", Port, ServerCredentials.Insecure) }
                Ports = { new ServerPort("0.0.0.0", Port, credentials) }
            };

            server.Start();

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

            server.ShutdownAsync().Wait();
        }
Esempio n. 10
0
        static void Main(string[] args)
        {
            const int port   = 9000;
            var       cacert = File.ReadAllText("Keys/ca.crt");
            var       cert   = File.ReadAllText("Keys/server.crt");
            var       key    = File.ReadAllText("Keys/server.key");

            var keypair  = new KeyCertificatePair(cert, key);
            var sslCreds = new SslServerCredentials(new List <KeyCertificatePair>
            {
                keypair
            }, cacert, false);

            Grpc.Core.Server server = new Grpc.Core.Server
            {
                Ports    = { new ServerPort("0.0.0.0", port, sslCreds) },
                Services = { BindService(new UsersService()) }
            };

            server.Start();

            Console.WriteLine("Starting server on port " + port);
            Console.WriteLine("Press any key to stop...");
            Console.ReadKey();
        }
Esempio n. 11
0
        static void StartServer(string host, int port)
        {
            var credentials = new SslServerCredentials(new List <KeyCertificatePair>
            {
                new KeyCertificatePair(
                    ResourceManager.GetText("Certificates.timecat.crt"),
                    ResourceManager.GetText("Certificates.timecat.key")
                    )
            });

            _server = new Server
            {
                Services =
                {
                    RpcCategoryService.BindService(new CategoryService()),
                    RpcCommonService.BindService(new CommonService()),
                    RpcDashboardService.BindService(new DashboardService()),
                    RpcDetailService.BindService(new DetailService()),
                    RpcMainService.BindService(new MainService()),
                    RpcReviewService.BindService(new ReviewService())
                },
                Ports =
                {
                    new ServerPort(host, port, credentials)
                }
            };

            _server.Start();
            Console.WriteLine($"Listening on {host}:{port}");
        }
Esempio n. 12
0
        public static void Main(string[] args)
        {
            var cacert         = File.ReadAllText(@"C:\Sertifika\ca.crt");
            var servercert     = File.ReadAllText(@"C:\Sertifika\server.crt");
            var serverkey      = File.ReadAllText(@"C:\Sertifika\server.key");
            var keypair        = new KeyCertificatePair(servercert, serverkey);
            var sslCredentials = new SslServerCredentials(new List <KeyCertificatePair>()
            {
                keypair
            }, cacert, false);


            Server server = new Server
            {
                Services = { Greeter.BindService(new GreeterImpl()) },
                Ports    = { new ServerPort("localhost", Port, sslCredentials) }
            };

            server.Start();

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

            server.ShutdownAsync().Wait();
        }
Esempio n. 13
0
        public void Init()
        {
            var serverCredentials = new SslServerCredentials(new[] { new KeyCertificatePair(File.ReadAllText(TestCredentials.ServerCertChainPath), File.ReadAllText(TestCredentials.ServerPrivateKeyPath)) });

            server = new Server
            {
                Services = { TestService.BindService(new TestServiceImpl()) },
                Ports    = { { Host, ServerPort.PickUnused, serverCredentials } }
            };
            server.Start();

            var options = new List <ChannelOption>
            {
                new ChannelOption(ChannelOptions.SslTargetNameOverride, TestCredentials.DefaultHostOverride)
            };

            var asyncAuthInterceptor = new AsyncAuthInterceptor(async(authUri, metadata) =>
            {
                await Task.Delay(100);  // make sure the operation is asynchronous.
                metadata.Add("authorization", "SECRET_TOKEN");
            });

            var clientCredentials = ChannelCredentials.Create(
                new SslCredentials(File.ReadAllText(TestCredentials.ClientCertAuthorityPath)),
                CallCredentials.FromInterceptor(asyncAuthInterceptor));

            channel = new Channel(Host, server.Ports.Single().BoundPort, clientCredentials, options);
            client  = TestService.NewClient(channel);
        }
Esempio n. 14
0
        public static void Start(IConfigurationRoot config)
        {
            var builder = new ContainerBuilder();

            builder.RegisterInstance(config).As <IConfigurationRoot>();
            //builder.RegisterInstance(new DataContext(config)).As<IDataContext>();
            //builder.RegisterAssemblyTypes(typeof(IDataContext).GetTypeInfo().Assembly).Where(t => t.Name.EndsWith("Repository")).AsImplementedInterfaces();

            _container = builder.Build();
            var servercert     = File.ReadAllText(@"server.crt");
            var serverkey      = File.ReadAllText(@"server.key");
            var keypair        = new KeyCertificatePair(servercert, serverkey);
            var sslCredentials = new SslServerCredentials(new List <KeyCertificatePair>()
            {
                keypair
            });
            var healthService = new HealthServiceImpl();

            _server = new Grpc.Core.Server
            {
                Services = { MsgService.BindService(new MsgServiceImpl()), Grpc.Health.V1.Health.BindService(healthService) },
                Ports    = { new ServerPort("0.0.0.0", 9007, sslCredentials) }
            };
            _server.Start();
            healthService.SetStatus("Demo", Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.Serving);
            _server.ShutdownTask.Wait();
        }
Esempio n. 15
0
        /// <nodoc/>
        internal void Start(int port, ServerServiceDefinition serverService)
        {
            var interceptor = new ServerInterceptor(m_loggingContext, m_invocationId);

            ServerCredentials serverCreds = null;

            if (GrpcSettings.EncryptionEnabled)
            {
                string certSubjectName = EngineEnvironmentSettings.CBBuildUserCertificateName;
                if (GrpcEncryptionUtil.TryGetPublicAndPrivateKeys(certSubjectName, out string publicCertificate, out string privateKey, out var _) &&
                    publicCertificate != null &&
                    privateKey != null)
                {
                    serverCreds = new SslServerCredentials(
                        new List <KeyCertificatePair> {
                        new KeyCertificatePair(publicCertificate, privateKey)
                    },
                        null,
                        SslClientCertificateRequestType.DontRequest);

                    Logger.Log.GrpcAuthTrace(m_loggingContext, $"Server-side SSL credentials is enabled.");
                }
                else
                {
                    Logger.Log.GrpcAuthWarningTrace(m_loggingContext, $"Could not extract public certificate and private key from '{certSubjectName}'. Server will be started without ssl.");
                }
            }
Esempio n. 16
0
        public void Init()
        {
            var rootCert    = File.ReadAllText(TestCredentials.ClientCertAuthorityPath);
            var keyCertPair = new KeyCertificatePair(
                File.ReadAllText(TestCredentials.ServerCertChainPath),
                File.ReadAllText(TestCredentials.ServerPrivateKeyPath));

            var serverCredentials = new SslServerCredentials(new[] { keyCertPair }, rootCert, true);
            var clientCredentials = new SslCredentials(rootCert, keyCertPair);

            server = new Server
            {
                Services = { TestService.BindService(new TestServiceImpl()) },
                Ports    = { { Host, ServerPort.PickUnused, serverCredentials } }
            };
            server.Start();

            var options = new List <ChannelOption>
            {
                new ChannelOption(ChannelOptions.SslTargetNameOverride, TestCredentials.DefaultHostOverride)
            };

            channel = new Channel(Host, server.Ports.Single().BoundPort, clientCredentials, options);
            client  = new TestService.TestServiceClient(channel);
        }
Esempio n. 17
0
        public void InitClientAndServer(bool clientAddKeyCertPair,
                                        SslClientCertificateRequestType clientCertRequestType,
                                        VerifyPeerCallback verifyPeerCallback = null)
        {
            rootCert    = File.ReadAllText(TestCredentials.ClientCertAuthorityPath);
            keyCertPair = new KeyCertificatePair(
                File.ReadAllText(TestCredentials.ServerCertChainPath),
                File.ReadAllText(TestCredentials.ServerPrivateKeyPath));

            var serverCredentials = new SslServerCredentials(new[] { keyCertPair }, rootCert, clientCertRequestType);
            var clientCredentials = new SslCredentials(rootCert, clientAddKeyCertPair ? keyCertPair : null, verifyPeerCallback);

            // Disable SO_REUSEPORT to prevent https://github.com/grpc/grpc/issues/10755
            server = new Server(new[] { new ChannelOption(ChannelOptions.SoReuseport, 0) })
            {
                Services = { TestService.BindService(new SslCredentialsTestServiceImpl()) },
                Ports    = { { Host, ServerPort.PickUnused, serverCredentials } }
            };
            server.Start();

            var options = new List <ChannelOption>
            {
                new ChannelOption(ChannelOptions.SslTargetNameOverride, TestCredentials.DefaultHostOverride)
            };

            channel = new Channel(Host, server.Ports.Single().BoundPort, clientCredentials, options);
            client  = new TestService.TestServiceClient(channel);
        }
        /// <summary>
        /// 使用ssl加密启动服务
        /// 建议使用RSA  密钥长度可以为1024,2048 或者 4096 bits
        /// 可以使用sslgen.cmd每次生成不同的密钥
        /// </summary>
        /// <param name="serverCertFile">共用证书</param>
        /// <param name="privateKeyFile">私钥</param>
        /// <param name="exceptionHandler"></param>
        /// <returns></returns>
        public bool StartWithSsl(string serverCertFile = "server.crt", string privateKeyFile = "server.key", Action <Exception> exceptionHandler = null)
        {
            try
            {
                ////Server可以服务多个services,绑定多个端口
                //Server server = new Server(options)
                //{
                //    //可以注册多个service
                //    Services = { Greeter.BindService(new GreeterServiceImpl()), },
                //    //可以注册多个端口
                //    //0.0.0.0监听在本机的所有IP地址
                //    Ports = { new ServerPort(IPAddress.Any.ToString()/*0.0.0.0*/, Port, ServerCredentials.Insecure/*没有安全验证*/) },

                //};

                //Server可以定义多个服务,绑定多个端口
                _server = new Server(GrpcOptions);

                //添加多个服务
                foreach (var serviceItem in _serviceList)
                {
                    //服务实现抛出异常不会挂掉服务器,客户端捕获如下异常信息:Status(StatusCode=Unknown, Detail="Exception was thrown by handler.")
                    _server.Services.Add(serviceItem);
                }

                #region ssl加密

                //证书链PEM encoded certificate chain  包含公钥 有效期 签发者等信息,但不包含私钥
                string serverCert = File.ReadAllText(serverCertFile, Encoding.UTF8);
                //私钥PEM encoded private key  不能公开,只有服务器上有
                string privateKey = File.ReadAllText(privateKeyFile, Encoding.UTF8);


                KeyCertificatePair keyPair = new KeyCertificatePair(serverCert, privateKey);

                SslServerCredentials sslCredentials = new SslServerCredentials(new List <KeyCertificatePair>()
                {
                    keyPair
                });

                #endregion

                //添加多个监听端口
                //0.0.0.0表示监听本机所有ip地址, 没有安全验证
                //string ipAny = IPAddress.Any.ToString();
                //ssl证书
                _server.Ports.Add(this._bindIp, this._serverPort, sslCredentials);

                _server.Start();

                return(true);
            }
            catch (Exception e)
            {
                exceptionHandler?.Invoke(e);
                return(false);
            }
        }
        /// <summary>
        /// Opens a connection using the parameters resolved by the referenced connection
        /// resolver and creates a gRPC server(service) using the set options and parameters.
        /// </summary>
        /// <param name="correlationId">(optional) transaction id to trace execution through call chain.</param>
        public virtual async Task OpenAsync(string correlationId)
        {
            if (IsOpen())
            {
                return;
            }

            var connection = await _connectionResolver.ResolveAsync(correlationId);

            var credential = connection.GetSection("credential");

            var protocol = connection.Protocol;
            var host     = connection.Host;
            var port     = connection.Port;

            _address = protocol + "://" + host + ":" + port;

            try
            {
                ServerCredentials serverCredentials = ServerCredentials.Insecure;

                if (protocol == "https")
                {
                    var sslKeyFile = credential.GetAsNullableString("ssl_key_file");
                    var privateKey = new StreamReader(sslKeyFile).ReadToEnd();

                    var sslCrtFile  = credential.GetAsNullableString("ssl_crt_file");
                    var certificate = new StreamReader(sslCrtFile).ReadToEnd();

                    serverCredentials = new SslServerCredentials(new[] { new KeyCertificatePair(certificate, privateKey) });
                }

                _server = new Server
                {
                    Ports = { new ServerPort(host, port, serverCredentials) }
                };

                _logger.Info(correlationId, "Opened gRPC service at {0}", _address);

                PerformRegistrations();
                _server.Start();

                await Task.Delay(0);
            }
            catch (Exception ex)
            {
                if (_server != null)
                {
                    //_server.Dispose();
                    _server = null;
                }

                throw new ConnectionException(correlationId, "CANNOT_CONNECT", "Opening gRPC service failed")
                      .WithCause(ex).WithDetails("url", _address);
            }
        }
Esempio n. 20
0
        public void Constructor_LegacyForceClientAuth()
        {
            var creds = new SslServerCredentials(new[] { keyCertPair }, rootCert, true);

            Assert.AreEqual(SslClientCertificateRequestType.RequestAndRequireAndVerify, creds.ClientCertificateRequest);

            var creds2 = new SslServerCredentials(new[] { keyCertPair }, rootCert, false);

            Assert.AreEqual(SslClientCertificateRequestType.DontRequest, creds2.ClientCertificateRequest);
        }
Esempio n. 21
0
        public void AddPort(string host, int port, string sslPublicKey, string sslPrivateKey)
        {
            var keyPair        = new KeyCertificatePair(sslPublicKey, sslPrivateKey);
            var sslCredentials = new SslServerCredentials(new List <KeyCertificatePair> {
                keyPair
            });
            var serverPort = new ServerPort(host, port, sslCredentials);

            Ports.Add(serverPort);
        }
Esempio n. 22
0
        public static ServiceProxy CreateServiceProxy(string host, int port, string publicKey, string privateKey, params object[] instances)
        {
            var keyPair        = new KeyCertificatePair(publicKey, privateKey);
            var sslCredentials = new SslServerCredentials(new List <KeyCertificatePair> {
                keyPair
            });
            ServerPort serverPort = new ServerPort(host, port, sslCredentials);

            return(CreateServiceProxy(new List <ServerPort> {
                serverPort
            }, instances));
        }
Esempio n. 23
0
        public EtgService(EntryDataServiceImpl entryDataServiceImpl, ILoggerFactory loggerFactory, IOptions <EtgServiceOptions> optionsAccessor)
        {
            this.securePorts   = optionsAccessor.Value.SecureChannelPorts;
            this.insecurePorts = optionsAccessor.Value.InsecureChannelPorts;
            serverCredentials  = new SslServerCredentials(
                optionsAccessor.Value.ServerKeyCertPairs.Select(x => new KeyCertificatePair(x.Cert, x.Key)),
                optionsAccessor.Value.CACert,
                true);

            this.entryDataServiceImpl = entryDataServiceImpl;
            this.logger = loggerFactory.CreateLogger <EtgService>();
        }
Esempio n. 24
0
        static void Main(string[] args)
        {
            Server server = null;

            try
            {
                var serverCertificate  = File.ReadAllText("ssl/server.crt");
                var serverKey          = File.ReadAllText("ssl/server.key");
                var keyCertificatePair = new KeyCertificatePair(serverCertificate, serverKey);
                var caCertificate      = File.ReadAllText("ssl/ca.crt");

                var credentials = new SslServerCredentials(new List <KeyCertificatePair>()
                {
                    keyCertificatePair
                }, caCertificate, true);

                // ./evans.exe -r -p 50051
                var greetingServiceReflectionServiceImpl   = new ReflectionServiceImpl(GreetingService.Descriptor, ServerReflection.Descriptor);
                var calculatorServiceReflectionServiceImpl = new ReflectionServiceImpl(CalculatorService.Descriptor, ServerReflection.Descriptor);
                var blogServiceReflectionServiceImpl       = new ReflectionServiceImpl(BlogService.Descriptor, ServerReflection.Descriptor);

                server = new Server()
                {
                    Services =
                    {
                        BlogService.BindService(new BlogServiceImpl()),
                        ServerReflection.BindService(blogServiceReflectionServiceImpl),
                        GreetingService.BindService(new GreetingServiceImpl()),
                        //ServerReflection.BindService(greetingServiceReflectionServiceImpl),
                        CalculatorService.BindService(new CalculatorServiceImpl()),
                        //ServerReflection.BindService(calculatorServiceReflectionServiceImpl)
                    },
                    Ports = { new ServerPort("localhost", port, ServerCredentials.Insecure) }
                };
                server.Start();
                Console.WriteLine("The server is listening on the port :" + port);
                Console.ReadKey();
            }
            catch (IOException e)
            {
                Console.WriteLine("The server failed to start:" + e.Message);
                throw;
            }
            finally
            {
                if (server != null)
                {
                    server.ShutdownAsync().Wait();
                }
            }
        }
Esempio n. 25
0
        private static ServerCredentials GetServerCredentials(SslClientCertificateRequestType sslClientCertificateRequestType)
        {
            var rootCert   = File.ReadAllText("keys/ca.crt");
            var serverCert = File.ReadAllText("keys/server.crt");
            var serverKey  = File.ReadAllText("keys/server.key");

            var credentials = new SslServerCredentials(
                new[] { new KeyCertificatePair(serverCert, serverKey) },
                rootCert,
                sslClientCertificateRequestType
                );

            return(credentials);
        }
Esempio n. 26
0
        static void Main(string[] args)
        {
            Server server = null;

            try
            {
                var reflectionServiceImpl = new ReflectionServiceImpl(GreetingService.Descriptor, ServerReflection.Descriptor);

                var serverCert = File.ReadAllText("ssl/server.crt");
                var serverKey  = File.ReadAllText("ssl/server.key");
                var keypair    = new KeyCertificatePair(serverCert, serverKey);
                var cacert     = File.ReadAllText("ssl/ca.crt");

                var credentials = new SslServerCredentials(
                    new List <KeyCertificatePair>()
                {
                    keypair
                }, cacert, true);

                server = new Server()
                {
                    Services =
                    {
                        GreetingService.BindService(new GreetingServiceImp()),
                        CalculatorService.BindService(new CalculatorServiceImp()),
                        SqrtService.BindService(new SqrtServiceImpl()),
                        GreetDeadlinesService.BindService(new GreetingDeadlinesImpl()),
                        ServerReflection.BindService(reflectionServiceImpl)
                    },

                    Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
                };

                server.Start();

                Console.WriteLine("The server is listening on the port {0}", Port);
                Console.ReadKey();
            }
            catch (IOException e)
            {
                Console.WriteLine("The server failed to start: ", e.Message);
            }
            finally
            {
                if (server != null)
                {
                    server.ShutdownAsync().Wait();
                }
            }
        }
        static async Task <ServerPort> CreateSecureServerPort(string host, int port)
        {
            var serverCert = await File.ReadAllTextAsync("ssl/server.crt");

            var serverKey = await File.ReadAllTextAsync("ssl/server.key");

            var caCrt = await File.ReadAllTextAsync("ssl/ca.crt");

            var credentials = new SslServerCredentials(new List <KeyCertificatePair> {
                new KeyCertificatePair(serverCert, serverKey)
            }, caCrt, true);

            return(await CreateServerPort(host, port, credentials));
        }
Esempio n. 28
0
        static void Main(string[] args)
        {
            Server server = null;

            try
            {
                var serverCert = File.ReadAllText("ssl/server.crt");
                var serverKey  = File.ReadAllText("ssl/server.key");
                var keypair    = new KeyCertificatePair(serverCert, serverKey);
                var caCrt      = File.ReadAllText("ssl/ca.crt");

                var credentials = new SslServerCredentials(new List <KeyCertificatePair>()
                {
                    keypair
                }, caCrt, true);

                server = new Server()
                {
                    Services =
                    {
                        GreetingService.BindService(new GreetingServiceImpl()),
                        SumService.BindService(new SumServiceImpl()),
                        PrimeNumbersService.BindService(new PrimeNumbersServiceImpl()),
                        AverageService.BindService(new AverageServiceImpl()),
                        MaxService.BindService(new MaxServiceImpl()),
                        SqrtService.BindService(new SquareRootServiceImpl()),
                        ServerReflection.BindService(new ReflectionServiceImpl(GreetingService.Descriptor, ServerReflection.Descriptor))
                    },

                    Ports = { new ServerPort("localhost", port, credentials) }
                };

                server.Start();
                Console.WriteLine($"Server is listening on port: {port}");
                Console.ReadKey();
            }
            catch (IOException e)
            {
                Console.WriteLine($"Server failed to start - {e.Message}");
                throw;
            }
            finally
            {
                if (server != null)
                {
                    server.ShutdownAsync().Wait();
                }
            }
        }
Esempio n. 29
0
        static SslServerCredentials GetCerts()
        {
            var certsFolder = Path.Combine(Environment.CurrentDirectory, "Certs");
            var cacert      = File.ReadAllText(Path.Combine(certsFolder, "ca.crt"));
            var cert        = File.ReadAllText(Path.Combine(certsFolder, "server.crt"));
            var key         = File.ReadAllText(Path.Combine(certsFolder, "server.key"));

            var certificateCollection = new List <KeyCertificatePair>
            {
                new KeyCertificatePair(cert, key)
            };
            var servCred = new SslServerCredentials(certificateCollection, cacert, SslClientCertificateRequestType.RequestAndRequireButDontVerify);

            return(servCred);
        }
Esempio n. 30
0
        public SslServerCredentials GetSslServerCredentials()
        {
            var caCert = File.ReadAllText(Path.Combine(Defines.CertFolderPath, Defines.CaCertificateName));
            var cert   = File.ReadAllText(Path.Combine(Defines.CertFolderPath, Defines.ServerCertificateName));
            var key    = File.ReadAllText(Path.Combine(Defines.CertFolderPath, Defines.ServerCertificateKeyName));

            var certificateCollection = new List <KeyCertificatePair>
            {
                new KeyCertificatePair(cert, key)
            };

            var serverCredentials = new SslServerCredentials(certificateCollection, caCert, SslClientCertificateRequestType.RequestAndRequireButDontVerify);

            return(serverCredentials);
        }