コード例 #1
0
 /// <summary>
 /// Cargar certificado SSL desde la ruta establecida en configuración
 /// </summary>
 /// <param name="configuration">Configuración</param>
 public static void LoadCertificateFromConfiguration(ISSLConfiguration configuration)
 {
     if (string.IsNullOrEmpty(configuration.CertificatePath))
     {
         Debug.WriteLine("No se ha establecido algun certificado en la configuración de SSL", VerbosityLevel.Warning);
         m_status = SSLCertificateStatus.InvalidPath;
     }
     else
     {
         if (File.Exists(configuration.CertificatePath))
         {
             bool usePassword = !string.IsNullOrEmpty(configuration.CertificatePassword);
             if (usePassword)
             {
                 m_globalCert = new X509Certificate2(configuration.CertificatePath, configuration.CertificatePassword);
             }
             else
             {
                 m_globalCert = new X509Certificate2(configuration.CertificatePath);
             }
             Debug.WriteLine("Establecido certificado global del sistema", VerbosityLevel.Info);
             m_status = SSLCertificateStatus.Loaded;
         }
         else
         {
             Debug.WriteLine($"No se puede cargar el certificado '{configuration.CertificatePath}' porque no existe", VerbosityLevel.Error);
             m_status = SSLCertificateStatus.NotExists;
         }
     }
 }
コード例 #2
0
        /// <summary>
        /// Crear configuración para el servidor WebServer en base a la configuración provista
        /// </summary>
        /// <param name="configuration">Estructura de configuración</param>
        private WebServerOptions ConfigureWebServer(IWebServerConfiguration serverConfiguration, ISSLConfiguration configuration)
        {
            WebServerOptions opts;
            List <string>    urlPrefixes = new List <string>
            {
                $"http://*:{serverConfiguration.HttpPort}/"
            };

            if (configuration.Secure && Helper.SSL.Status == SSLCertificateStatus.Loaded)
            {
                urlPrefixes.Add($"https://*:{serverConfiguration.HttpsPort}/");
                opts = new WebServerOptions(urlPrefixes.ToArray())
                {
                    Certificate = Helper.SSL.GlobalCertificate
                };
            }
            else
            {
                opts = new WebServerOptions(urlPrefixes.ToArray());
            }
            return(opts);
        }