Aquí es una pequeña clase de certificado que alguna vez he utilizado, es algo que siempre puede ser útil tenerlo cerca.

Se trata básicamente de un ayudante para la búsqueda de certificados X509 por huella digital usando C # (X509Certificate2).

También he incluido un método para cargar un certificado X509 del sistema de archivos y un poco de método de fábrica para crear X509SigningCredentials.

public static class CertificateHelper
{
    public static X509Certificate2 FindByThumbprint(string thumbprint, StoreName storeName, StoreLocation storeLocation)
    {
        var certificateStore = new X509Store(storeName, storeLocation);
        certificateStore.Open(OpenFlags.ReadOnly);
 
        foreach (var certificate in certificateStore.Certificates)
        {
            if (certificate == null || certificate.Thumbprint == null)
            {
                continue;
            }
 
            if (string.Equals(certificate.Thumbprint, thumbprint, StringComparison.InvariantCultureIgnoreCase))
            {
                certificateStore.Close();
                return certificate;
            }
        }
 
        throw new ArgumentException(string.Format("Cannot find certificate with thumbprint {0} in certificate store: {1} at location: {2} ", thumbprint, storeName, storeLocation));
    }
 
    public static X509Certificate2 FindFromFile(string certificatePath, string password)
    {
        var x509Certificate2 = new X509Certificate2();
 
        x509Certificate2.Import(certificatePath, password, X509KeyStorageFlags.DefaultKeySet);
 
        return x509Certificate2;
    }
 
    public static X509SigningCredentials CreateSigningCredentials(X509Certificate2 certificate)
    {
        return new X509SigningCredentials(certificate);
    }
}

En caso de necesitar crear un certificado auto firmado, aquí les dejo el enlace: Crear Certificado Autofirmado.

(Visitado 238 veces, 1 visitas hoy)