x509certificate2 c# example
Cómo recuperar todos los certificados en su X509Store (4)
Agregue esta línea de código a la segunda línea y vea cómo funciona:
store.Open(OpenFlags.ReadOnly);
y luego esto en la parte inferior :):
store.Close();
Estoy usando el siguiente código para recuperar todos los certificados en mi PC desde una aplicación web asp.net. La colección de certificados está vacía, y no puedo entender por qué.
Intenté suplantar mi propia cuenta de usuario y tampoco tuve éxito. ¿Qué estoy haciendo mal?
var store = new X509Store(StoreLocation.CurrentUser); //StoreLocation.LocalMachine fails too
var certificates = store.Certificates;
foreach (var certificate in certificates)
{
var friendlyName = certificate.FriendlyName;
Console.WriteLine(friendlyName);
}
//original problem: fetch a single certificate by its subject name
X509Certificate2 clientCertificate = CertificateUtility.GetCertificate(StoreName.My, StoreLocation.CurrentUser, "CN=mypc.domainname"); //returns null :(
Busque en su almacén de certificados (complemento mmc / add / certificado / mi cuenta de usuario / Certificados - Usuario actual / Personal / Certificados) para ver el nombre del sujeto para asegurarse de que "CN = mypc.domainname" es lo que realmente está en el certificado.
"CN=mypc.domainname"
vs
"CN = mypc.domainname"
... etc
Puedo encontrar certificados por ...
var certificateStore = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine);
certificateStore.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var certificateCollection = certificateStore.Certificates.Find(X509FindType.FindBySubjectName, "mycert.me.com",false);
certificateStore.Close();
var certificate = certificateCollection[0];
certificateCollection tendrá los certificados que me interesan ... si es solo uno, obtengo el primer elemento de la colección.
Todo en uno ...
Tengo un servidor apache (xamp) con https. Accedo a través de https y c # (vs2010) a una página de carga de PHP
Instale el certificado de, por ejemplo, en el certificado de la carpeta personal, por ejemplo.
Para ver los certificados, ejecute "certmgr.msc", al menos en win7
Listado de certificados personales
var store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certificates = store.Certificates;
foreach (var certificate in certificates)
{
var friendlyName = certificate.FriendlyName;
var xname = certificate.GetName(); //obsolete
Console.WriteLine(friendlyName);
}
store.Close();
Encontrar certificado específico
string certificateName = "CN=localhost"; //name found in the var xname
X509Store storex = new X509Store(StoreName.My, StoreLocation.CurrentUser);
storex.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificatesx =
storex.Certificates.Find(X509FindType.FindBySubjectName,
certificateName,
true);
X509Certificate certificatex = certificates[0];
storex.Close();