/// <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; } } }
/// <summary> /// Revisar si un certificado existe para determinada dirección IP /// </summary> /// <param name="address">Dirección IP</param> public static void CheckAutoGenerateCertificate(IPAddress address) { string filepath = GetAutogenCertFilepath(address); if (!File.Exists(filepath)) { AutoGenerateCertificate(address); } m_globalCert = new X509Certificate2(filepath, PASSWORD_DEFAULT_CA); m_status = SSLCertificateStatus.Loaded; Debug.WriteLine("SSLAutogen", $"Certificado para '{address}' generado y cargado", VerbosityLevel.Info); }