示例#1
0
        private void Start(string host, int port, WebServerSslConfig sslConfig)
        {
            _listener = new HttpListener();

            if (sslConfig == null)
            {
                _logger.Info($"Starting HTTP server on {host}:{port}");
                _listener.Prefixes.Add($"http://{host}:{port}/");
            }
            else
            {
                _logger.Info($"Starting HTTPS server on {host}:{port}");
                _listener.Prefixes.Add($"https://{host}:{port}/");

                _listener.SslConfiguration.EnabledSslProtocols                 = sslConfig.EnabledSslProtocols;
                _listener.SslConfiguration.ServerCertificate                   = Utils.LoadPemCertificate(sslConfig.CertificatePath, sslConfig.KeyPath);
                _listener.SslConfiguration.ClientCertificateRequired           = sslConfig.ClientCertificateRequired;
                _listener.SslConfiguration.CheckCertificateRevocation          = false;
                _listener.SslConfiguration.ClientCertificateValidationCallback = sslConfig.ClientCertificateValidationCallback;
            }

            _listener.Start();
        }