Comentarios en: Utilizar certificados digitales desde .NET https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/ El blog de Scientia® Soluciones Informáticas Sat, 01 Apr 2023 19:48:01 +0000 hourly 1 Por: Ana https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-16186 Sat, 01 Apr 2023 19:48:01 +0000 http://www.programandoamedianoche.com/?p=570#comment-16186 Buenas tardes, Muy interesante el artículo.
Por favor, quisiera tu apoyo con un problema que no he podido resolver hasta ahora,
Tengo un aplicación en VB.net que realiza la firma de archivos xml con el certificado digital, todo ha estado bien por mas de 2 años, pero ahora se ha puesto lento al momento de firmar el xml, justo la demora es en «objChain.Build(objCert)», antes no demoraba y ahora demora mas de 10 segundos en este punto.
No se a que se debe. Espero puedas ayudarme, gracias.

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-16123 Thu, 02 Dec 2021 20:31:14 +0000 http://www.programandoamedianoche.com/?p=570#comment-16123 En respuesta a Hugo.

Hola Hugo.
Acá dan algunos ejemplos de cómo leer la clave privada desde el archivo .key: How To Read .Key file on C#?.
¡Suerte!

]]>
Por: Hugo https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-16122 Thu, 02 Dec 2021 20:22:01 +0000 http://www.programandoamedianoche.com/?p=570#comment-16122 Hola Gustavo, buenas tardes. Antes que nada excelente artículo.
Una duda, al igual que otro compañero, me sale el error en objSignedData.ComputeSignature(objSigner) error de: la clave no existe. Y revisando tu respuesta anterior, mi archivo .cer no tiene la llave privada, la tengo en otro archivo a parte con extensión .key. (con su respectivo password). Mi pregunta es, como puedo anexarlo a mi archivo .cer? He visto que tal vez pueda hacer una copia con certificate= certificate.CopyWithPrivateKey(key); pero desconozco como pasarle mi .key a dicho método. Te lo agradezco mucho!

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-16102 Thu, 01 Jul 2021 12:42:08 +0000 http://www.programandoamedianoche.com/?p=570#comment-16102 En respuesta a Jose Emmanuel.

Hola José.
¿Puede ser que tu certificado no tenga la clave privada?
Saludos.

]]>
Por: Jose Emmanuel https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-16101 Thu, 01 Jul 2021 00:41:17 +0000 http://www.programandoamedianoche.com/?p=570#comment-16101 En respuesta a Gustavo Cantero (The Wolf).

Hola Gustavo

No se, si todavia revises esto, ya que veo que es de hace 10 años, pero bueno si corro con suerte. Tengo el mismo problema que Fredys, devuelve esto «No puede encontrar el objeto o la propiedad\r\n»
Podrías orientarme a la solución. Esto es debido al certificado?

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-16059 Tue, 24 Nov 2020 20:50:27 +0000 http://www.programandoamedianoche.com/?p=570#comment-16059 En respuesta a Raul Monge.

Hola Raúl.
Acabo de enviarte un mail.
Saludos.

]]>
Por: Raul Monge https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-16058 Tue, 24 Nov 2020 20:35:33 +0000 http://www.programandoamedianoche.com/?p=570#comment-16058 Buenas tardes hay alguna manera de contactarme con usted? Gustavo Cantero.

]]>
Por: Adolfo Guzman https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15951 Sat, 31 Aug 2019 15:33:23 +0000 http://www.programandoamedianoche.com/?p=570#comment-15951 En respuesta a Gustavo Cantero (The Wolf).

Muy Agradecido Gustavo, gracias por responder.

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15950 Sat, 31 Aug 2019 14:20:09 +0000 http://www.programandoamedianoche.com/?p=570#comment-15950 En respuesta a Adolfo Guzmán.

Hola Adolfo.
Deberías llamar al método WinVerifyTrust de Wintrust.dll, que está presente desde Windows XP.
En esta página (pinvoke.net: winverifytrust (wintrust)) tenés un ejemplo de cómo utilizarla desde C#, aunque en VB.NET es lo mismo, sólo cambia un poco la sintaxis.
Suerte!

]]>
Por: Adolfo Guzmán https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15949 Sat, 31 Aug 2019 05:12:57 +0000 http://www.programandoamedianoche.com/?p=570#comment-15949 Como puedo reconocer un ejecutable con firma digital y comprobar que este no ha sido violado. Por favor si me pudieran orientar, donde puedo conseguir información en VB net

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15924 Tue, 16 Apr 2019 20:38:12 +0000 http://www.programandoamedianoche.com/?p=570#comment-15924 En respuesta a Jose Willians Navarro Yovera.

Buenas tardes José.
No tenemos los ejemplos en VB.NET, pero son los mismos objetos en los mismos namespaces, sólo cambia un poco la sintaxis.
Saludos.

]]>
Por: Jose Willians Navarro Yovera https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15901 Fri, 04 Jan 2019 22:09:41 +0000 http://www.programandoamedianoche.com/?p=570#comment-15901 Buenas tardes primero agradecerles por su aporte de conocimientos y ala vez consultarles si tienes procedimientos para visual basic .net, estaria muy agradecido

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15810 Fri, 26 Oct 2018 17:30:38 +0000 http://www.programandoamedianoche.com/?p=570#comment-15810 En respuesta a Felix.

Hola Felix.
Seguramente el problema esa que el crt no tenga la clave privada. ¿Puede ser?
Saludos.

]]>
Por: Felix https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15805 Fri, 26 Oct 2018 04:39:22 +0000 http://www.programandoamedianoche.com/?p=570#comment-15805 Hola Gustavo, al momento de correr el código tengo el siguiente problema, al llegar a la línea objSignedData.ComputeSignature(objSigner), emite el error de: la clave no existe. qué podría ser?, considerando que tengo un archivo .crt y un .key ambos en una carpeta y el archivo a firmar en otra.

]]>
Por: iris https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15737 Fri, 09 Mar 2018 00:23:57 +0000 http://www.programandoamedianoche.com/?p=570#comment-15737 Buenas tardes, para mandar el texto encriptado a un pdf, como podría hacerle. Quiero que el sello digital se muestre en un documento pero generado desde asp

]]>
Por: Luis Alvarez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15711 Wed, 08 Nov 2017 19:16:47 +0000 http://www.programandoamedianoche.com/?p=570#comment-15711 En respuesta a seguridadmarco2017.

listo, igual creo que si lees desde el cliente lo que puedes consultar son los certificados ssl, mas no los certificados digitales del cliente que tiene en el navegador, hay un proyecto de la w3c para esta necesidad pero aun se esta a la espera de este.

Si encuentras algun modo de hacer que funcione, no dudes en compartirlo

]]>
Por: seguridadmarco2017 https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15710 Wed, 08 Nov 2017 18:40:03 +0000 http://www.programandoamedianoche.com/?p=570#comment-15710 En respuesta a Luis Alvarez.

Ya lo he leído, pero yo no quiero leer la clave privada, solo quiero acceder al certificado para autentificarse.
Desde mi equipo accedo a los certificados de Windows sin problema, pero cuando lo ejecuta el servidor no puedo acceder.

Gracias y perdón si me repito

]]>
Por: Luis Alvarez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15709 Wed, 08 Nov 2017 14:01:40 +0000 http://www.programandoamedianoche.com/?p=570#comment-15709 En respuesta a Marco.

yo intentaba hacer lo mismo, y no se puede esta fue la respuesta por si te interesa, y arriba esta toda la conversacion, como recomendacion lee los comentarios antes de preguntar para que no se repitan las preguntas.
«El problema es que no vas a poder hacerlo como estás pensando, porque con el navegador podés hacer que el usuario elija un certificado para autenticarse contra el IIS, pero no vas a poder leer la clave privada de éste para firmar un documento.
La única manera de hacerlo es utilizando algo externo, como un applet, plugin del browser, ejecutable o algo parecido. Hace unos años habíamos hecho un componente en Silverlight que leía el certificado y firmaba un PDF del lado del cliente, deberías crear algo así (obviamente no con Silverlight, que ya es obsoleto).
Suerte!»

]]>
Por: Hans Cruz Buchelli https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15706 Fri, 03 Nov 2017 15:28:37 +0000 http://www.programandoamedianoche.com/?p=570#comment-15706 Hola como se podria firmar en formato CAdES?

]]>
Por: Marco https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15705 Fri, 03 Nov 2017 12:14:13 +0000 http://www.programandoamedianoche.com/?p=570#comment-15705 Hola, buenos días.
Estoy intentado coger el certificado digital que hay instalado en el navegador pero no lo consigo, solo consigo mostrar el de windows,
En Firefox no tengo instaldo ningún certificado, sin embargo me muestra el de windows.
Me podéis ayudar.

Gracias

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15703 Mon, 30 Oct 2017 17:40:10 +0000 http://www.programandoamedianoche.com/?p=570#comment-15703 En respuesta a Milkos Villaseca.

Buenas tardes!
La contraseña utilizada para abrir un certificado se puede especificar en el constructor de la clase X509Certificate2, por lo cual, podrías crear un diálogo para consultarle al usuario la contraseña, y guardarla en una variable para usarla en cada firma que debas hacer.
Espero te sirva.
Saludos.

]]>
Por: Milkos Villaseca https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15702 Mon, 30 Oct 2017 16:53:56 +0000 http://www.programandoamedianoche.com/?p=570#comment-15702 Buenos días Gustavo, saludos a todos con estas líneas; leyendo tu código he podido firmar un documento PDF incluyendo la firma en el mismo haciéndola visible o invisible. El tema que tengo es el siguiente: La necesidad de firmar varios archivos pdf y/o xml, el certificado lo selecciono de mi repositorio, pero tiene una clave privada, al hacerlo con una sólo documento, no hay problema que se pida la clave, pero al ser varios hay alguna forma de almacenar esa clave ingresada una única vez? e ir firmando uno a uno los documentos. Gracias de antemano por la atención. Tus artículos con excelentes y de mucha ayuda.

]]>
Por: Hans Cruz Buchelli https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15696 Wed, 04 Oct 2017 11:31:43 +0000 http://www.programandoamedianoche.com/?p=570#comment-15696 Hola Gustavo, tengo una duda, como se podria firmar con contraseña pero una imagen o otro documento que no sea PDF.

Gracias

]]>
Por: majo2013 https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15680 Fri, 16 Jun 2017 18:19:43 +0000 http://www.programandoamedianoche.com/?p=570#comment-15680 En respuesta a majo2013.

bueno bueno.. Leyendo «https://stackoverflow.com/questions/22407897/pdf-digital-signature-in-java-and-signature-verification-in-c-sharp-itext» en uno de los comentarios recomienda actualizar la librería de itextSharp. Yo tenía la 4.1.2, así que actualicé a la versión 5.5.11 (https://www.nuget.org/packages/iTextSharp/5.5.11).

Y la verificación funcionó tanto para documentos firmados con itextsharp como el firmado por acrobat reader DC.
tuve que modificar la línea de código: «ArrayList names = af.GetSignatureNames();» por «List names = af.GetSignatureNames();» y «PdfPKCS7.GetSubjectFields(pk.SigningCertificate).GetField(«C»)» aun tengo que ver como funciona en la nueva versión.

Pero es un paso enorme!

Gracias Chicos por la colaboración.

]]>
Por: majo2013 https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15679 Fri, 16 Jun 2017 17:48:58 +0000 http://www.programandoamedianoche.com/?p=570#comment-15679 En respuesta a Gema.

Gracias por la ayuda!..

            StringBuilder sb = new StringBuilder();  
            PdfReader reader = new PdfReader(fullPathArchivoFirmado);
            AcroFields af = reader.AcroFields;    ArrayList names = af.GetSignatureNames();
            for (int i = 0; i < names.Count; ++i)    { String name = (string)names[i]; PdfPKCS7 pk = af.VerifySignature(name); sb.AppendFormat("Signature field name: {0}\n", name);
                sb.AppendFormat("Signature signer name: {0}\n", pk.SignName); sb.AppendFormat("Signature date: {0}\n", pk.SignDate);
                sb.AppendFormat("Signature country: {0}\n", PdfPKCS7.GetSubjectFields(pk.SigningCertificate).GetField("C"));
                sb.AppendFormat("Signature organization: {0}\n",PdfPKCS7.GetSubjectFields(pk.SigningCertificate).GetField("O"));
                sb.AppendFormat("Signature unit: {0}\n", PdfPKCS7.GetSubjectFields(pk.SigningCertificate).GetField("OU")); }

Te cuento las pruebas con el código que me pasaste que hice:
1ero) traté de verificar un pdf firmado con Acrobat Reader DC: Da la excepción Org.BouncyCastle.SecurityUtilityException: {"Signer 2.16.840.1.101.3.4.2.1WITH1.2.840.113549.1.1.11 not recognised."}
2do) traté de verificar un pdf firmado con itextsharp: y ya no dio la excepción. Este caso si anduvo.
Me preocupa un poco, se supone que puedo recibir documentos firmados con cualquier herramienta. Alguna idea de la excepción que describí?

]]>
Por: Luis Alvarez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15678 Fri, 16 Jun 2017 17:15:50 +0000 http://www.programandoamedianoche.com/?p=570#comment-15678 En respuesta a majo2013.

si te sigue dando problemas aqui esta esta libreria que es muy buena la verdad y tiene cositas interesantes, ademas la licencia es libre si la compañia factura menos de $1’000.000 de dolares al año…. podrias probar a ver que tal
https://help.syncfusion.com/file-formats/pdf/working-with-digitalsignature

]]>
Por: majo2013 https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15677 Fri, 16 Jun 2017 17:04:31 +0000 http://www.programandoamedianoche.com/?p=570#comment-15677 En respuesta a Luis Alvarez.

Hola Luis,

Para generar la firma estoy utilizando itextSharp: https://www.codeproject.com/articles/14488/e-signing-pdf-documents-with-itextsharp

por las dudas probé verificar un pdf firmado con acrobat reader DC y se produce el mismo error (descarto que sea itextsharp…)

]]>
Por: Luis Alvarez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15676 Fri, 16 Jun 2017 13:45:42 +0000 http://www.programandoamedianoche.com/?p=570#comment-15676 En respuesta a majo2013.

debes tener en cuenta que para leer debes usar la misma libreria que usaste para escribir, ese puede ser el motivo del error.

]]>
Por: Gema https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15675 Fri, 16 Jun 2017 13:45:00 +0000 http://www.programandoamedianoche.com/?p=570#comment-15675 En respuesta a majo2013.

Por lo que veo es un documento PDF. Para validar la firma en PDFs yo uso itextsharp. Puedes ver un ejemplo de verificar firmar aquí: https://stackoverflow.com/questions/9823240/how-to-retrieve-digital-signature-information-name-date-with-itextsharp

Un saludo

]]>
Por: majo2013 https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15674 Fri, 16 Jun 2017 12:55:06 +0000 http://www.programandoamedianoche.com/?p=570#comment-15674 En respuesta a Gema.

Hola Gema!
Gracias por responder.

hice la prueba de utilizar el método «File.ReadAllBytes(fullPathArchivoFirmado);» y se produce la misma excepción.

hice la prueba de luego de obtener el arreglo de bytes, guardarlo con: File.WriteAllBytes(fullPathArchivoFirmado+»prueba»,bytDocFirmado);

y el documento de prueba es exactamente el mismo, incluso lo abro con acrobat reader y sigue verificado. La lectura de los bytes no es el problema.

=/

]]>
Por: Gema https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15673 Fri, 16 Jun 2017 11:18:06 +0000 http://www.programandoamedianoche.com/?p=570#comment-15673 En respuesta a majo.

Hola majo, para pasar un documento a array de bytes puedes usar:

byte[] bytDocFirmado = File.ReadAllBytes(fullPathArchivoFirmado);

A mí no me da el error de etiqueta ASN1 incorrecto…

Un saludo

]]>
Por: majo https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15672 Thu, 15 Jun 2017 01:52:05 +0000 http://www.programandoamedianoche.com/?p=570#comment-15672 En respuesta a Hernan.

Hola! Gracias por el artículo! me sirvió muchísimo para enteder cómo funciona firma digital.
Estoy implementando una aplicación en el cliente para firmar y varios años después me encuentro con el mismo problema que Hernan

byte[] bytDocFirmado = GetDocument(fullPathArchivoFirmado); //obtener el archivo firmado en bytes
SignedCms objDatos = new SignedCms();
//Deserializo los bytes PKCS#7
objDatos.Decode(bytDocFirmado); // –>>> “Se ha encontrado un valor de etiqueta ASN1 incorrecto”
El mismo documento lo abro con Acrobat, y el documento verifica.
Para obtener el archivo en bytes utilizo la siguiente información:
private Byte[] GetDocument(string strDocPath)
{
FileStream objfilestream = new FileStream(strDocPath, FileMode.Open, FileAccess.Read);
int len = (int)objfilestream.Length;
Byte[] documentcontents = new Byte[len];
objfilestream.Read(documentcontents, 0, len);
objfilestream.Close();
return documentcontents;
}
]]>
Por: majo2013 https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15671 Wed, 14 Jun 2017 18:19:39 +0000 http://www.programandoamedianoche.com/?p=570#comment-15671 En respuesta a Hernan.

Hola! Gracias por el artículo! me sirvió muchísimo para enteder cómo funciona firma digital.
Estoy implementando una aplicación en el cliente para firmar y varios años después me encuentro con el mismo problema que Hernan

            byte[] bytDocFirmado = GetDocument(fullPathArchivoFirmado); //obtener el archivo firmado en bytes
            SignedCms objDatos = new SignedCms();

            //Deserializo los bytes PKCS#7
            objDatos.Decode(bytDocFirmado);   // -->>> "Se ha encontrado un valor de etiqueta ASN1 incorrecto"

El mismo documento lo abro con Acrobat, y el documento verifica.

Para obtener el archivo en bytes utilizo la siguiente información:

        private Byte[] GetDocument(string strDocPath)
        {
            FileStream objfilestream = new FileStream(strDocPath, FileMode.Open, FileAccess.Read);
            int len = (int)objfilestream.Length;
            Byte[] documentcontents = new Byte[len];
            objfilestream.Read(documentcontents, 0, len);
            objfilestream.Close();

            return documentcontents;
        }

Encontraron alguna solución?

Gracias!

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15667 Tue, 16 May 2017 20:57:44 +0000 http://www.programandoamedianoche.com/?p=570#comment-15667 En respuesta a jose carlos.

Hola José.
Para mostrar el diálogo del sistema operativo que te permite seleccionar uno o varios certificados podés utilizar la clase X509Certificate2UI.
Sería reemplazar la linea

X509Certificate2 objCert = new X509Certificate2(“archivo”, “contraseña”);

por esto:

X509Store objStore = new X509Store("MY", StoreLocation.CurrentUser);
objStore.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

var objColection = (X509Certificate2Collection)objStore.Certificates;
var objFColection = (X509Certificate2Collection)objColection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
var objSelected = X509Certificate2UI.SelectFromCollection(objFColection, "Selección de certificados", "Por favor seleccione un certificado de la lista", X509SelectionFlag.SingleSelection);
X509Certificate2 objCert = null;
if (objSelected.Count > 0)
    objCert = objSelected[0];

Si necesitás que el usuario seleccione más de un certificado, reemplazá la definición de objSelected por esto:

var objSelected = X509Certificate2UI.SelectFromCollection(objFColection, "Selección de certificados", "Por favor seleccione los certificados de la lista", X509SelectionFlag.MultiSelection);

Espero te sirva.
¡Suerte!

]]>
Por: jose carlos https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15666 Tue, 16 May 2017 19:44:27 +0000 http://www.programandoamedianoche.com/?p=570#comment-15666 En respuesta a Gustavo Cantero (The Wolf).

Estimado Gustavo. una pregunta : ¿como puedo hacer para que en lugar de X509Certificate2 objCert = new X509Certificate2(«archivo», «contraseña»);
pueda escojer un certificado instalado previamente en el almacen de certificados

]]>
Por: Jorge Catalá https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15638 Thu, 26 Jan 2017 09:17:47 +0000 http://www.programandoamedianoche.com/?p=570#comment-15638 Excelente Post, gracias por compartir tu conocimiento.

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15637 Wed, 25 Jan 2017 17:39:36 +0000 http://www.programandoamedianoche.com/?p=570#comment-15637 En respuesta a Luis Alvarez.

Muchas gracias por el link, parece bueno, lástima que recién hace un mes que está esta «recomendación» 🙁
Saludos.

]]>
Por: Luis Alvarez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15636 Wed, 25 Jan 2017 17:07:05 +0000 http://www.programandoamedianoche.com/?p=570#comment-15636 En respuesta a Gustavo Cantero (The Wolf).

gracias gustavo, mira te dejo este documento que me pareci muy bueno y me parece que es el futuro del manejo de firmas, ademas es de la w3c 🙂
https://www.w3.org/TR/WebCryptoAPI/
GRACIAS!

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15635 Wed, 25 Jan 2017 16:33:21 +0000 http://www.programandoamedianoche.com/?p=570#comment-15635 En respuesta a Luis Alvarez.

El problema es que no vas a poder hacerlo como estás pensando, porque con el navegador podés hacer que el usuario elija un certificado para autenticarse contra el IIS, pero no vas a poder leer la clave privada de éste para firmar un documento.
La única manera de hacerlo es utilizando algo externo, como un applet, plugin del browser, ejecutable o algo parecido. Hace unos años habíamos hecho un componente en Silverlight que leía el certificado y firmaba un PDF del lado del cliente, deberías crear algo así (obviamente no con Silverlight, que ya es obsoleto).
Suerte!

]]>
Por: Luis Alvarez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15634 Wed, 25 Jan 2017 15:58:25 +0000 http://www.programandoamedianoche.com/?p=570#comment-15634 En respuesta a Gustavo Cantero (The Wolf).

ya eso lo probe pero llega vacio, mira te explico la necesidad para que tengas una idea, lo que quiero hacer es que el usuario elija de las firmas que tiene agregadas al navegador con cual desea firmar el documento.

con el archivo fisico ya lo esta haciendo pero ahora en este punto estoy estancado he estado leyendo mucho pero nada no encuentro solucion

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15633 Wed, 25 Jan 2017 15:48:14 +0000 http://www.programandoamedianoche.com/?p=570#comment-15633 En respuesta a Luis Alvarez.

Hola Luis.
Podrías consultar el certificado utilizado en el navegador utilizando esta linea:

var cert = System.Web.HttpContext.Current.Request.ClientCertificate

Suerte!

]]>
Por: Luis Alvarez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15631 Wed, 25 Jan 2017 14:24:09 +0000 http://www.programandoamedianoche.com/?p=570#comment-15631 Hola gustavo muchas gracias por compartir esta informacion me fue muy util, ahora tengo una pregunta si quisiera consultar los certificados agregados al navegador desde una aplicacion mvc, sabes como seria?

y otra vez muchas gracias por el post.

]]>
Por: jonatan https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15615 Thu, 10 Nov 2016 11:32:02 +0000 http://www.programandoamedianoche.com/?p=570#comment-15615 En respuesta a Gustavo Cantero (The Wolf).

Hola Buenos dias, me pasa exactamente lo mismo. Pero no se cómo darle permisos al usuario ASP.NET.
Me podrian dar una mano con esto? por favor?
Muchas gracias y felicitaciones por el blog. Lo sigo siempre.

Saludos

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15598 Mon, 26 Sep 2016 13:33:32 +0000 http://www.programandoamedianoche.com/?p=570#comment-15598 En respuesta a Felipe.

Buenos días Felipe.
Disculpame pero no entiendo la consulta. ¿Podrás pasarnos el código que estás usando para que lo podamos ver?
Saludos.

]]>
Por: Felipe https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15596 Fri, 23 Sep 2016 20:52:37 +0000 http://www.programandoamedianoche.com/?p=570#comment-15596 Sorry la pregunta pero soy muy nuevo en los certificados y quiero saber que cuando dice » //Acá tenemos que poner el certificado» el objCert.Subject
que me deja como este nombre del certificado (CN=IndexaSignCert) y al momento de hacer X509Certificate2 objCert = … //Acá tenemos que poner el certificado
me manda error.
Gracias

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15579 Thu, 11 Aug 2016 01:24:09 +0000 http://www.programandoamedianoche.com/?p=570#comment-15579 En respuesta a CHIQUY.

Hola.
Hace unos años escribí otro artículo donde explico lo de firmar PDFs desde .NET: Cómo firmar un documento PDF desde C# con iTextSharp, y ahí podés ver que creo la variable objStamper que es un objeto PdfSignatureAppearance, el cual representa la firma «visible» del documento. Probá haciendo modificaciones sobre ese objeto, por ejemplo, el método SetVisibleSignature se utiliza para especificar el tamaño de la firma.
Espero te sirva.
Saludos.

]]>
Por: CHIQUY https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15577 Tue, 09 Aug 2016 21:36:38 +0000 http://www.programandoamedianoche.com/?p=570#comment-15577 HOLA GUSTAVO: LOGRA HACER EL CERTIFICADO Y PONERLO EN UN PDF EXISTENTE… EL TEMA ES QUE NO SÉ COMO PUEDO HACER PARA ACOMODARLO (POSICIONARLO) EN EL PDF O CAMBIAR EL TAMANO DE LA FIRMA… TENES IDEA COMO SE HACE GRACIAS

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15553 Tue, 21 Jun 2016 15:16:55 +0000 http://www.programandoamedianoche.com/?p=570#comment-15553 En respuesta a Olga.

Hola Olga.
Deberías obtener el objeto X509Certificate2 con la información de tu certificado, por ejemplo, leerlo desde un archivo utilizando la sobrecarga del construtor creada para eso.
Luego, con el objeto del certificado, deberías utilizar la clave privada del mismo (la podés obtener con la propiedad PrivateKey) en lugar de crear una nueva clave en la siguiente linea:

RSACryptoServiceProvider rsaKey = new RSACryptoServiceProvider(cspParams);

¡Suerte!

]]>
Por: Olga https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15552 Mon, 20 Jun 2016 07:37:52 +0000 http://www.programandoamedianoche.com/?p=570#comment-15552 En respuesta a Gustavo Cantero (The Wolf).

Si lo vi, pero no veo donde debo pasar la info del certificado,

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15549 Fri, 17 Jun 2016 15:44:38 +0000 http://www.programandoamedianoche.com/?p=570#comment-15549 En respuesta a Olga.

Hola Olga.
En esta página del MSDN tenés un ejemplo: Cómo: Firmar documentos XML con firmas digitales.
Suerte!

]]>
Por: Olga https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15548 Fri, 17 Jun 2016 15:39:36 +0000 http://www.programandoamedianoche.com/?p=570#comment-15548 Hola,
Tienes algún ejemplo de esto mismo, pero firmando un fichero XML

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15483 Mon, 07 Mar 2016 17:39:14 +0000 http://www.programandoamedianoche.com/?p=570#comment-15483 En respuesta a veronica lopez.

Hola Verónica.
Depende de dónde tengas tu certificado. Por ejemplo, si lo tenés como parte de otro archivo deberías ver cómo tomarlo de ahí, o si lo en un archivo lo podés leer de la siguiente manera:

X509Certificate2 objCert = new X509Certificate2("archivo");

Y si lo tenés con contraseña podés abrirlo así:

X509Certificate2 objCert = new X509Certificate2("archivo", "contraseña");

Saludos.

]]>
Por: veronica lopez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15481 Fri, 04 Mar 2016 18:05:05 +0000 http://www.programandoamedianoche.com/?p=570#comment-15481 Que tal quisiera realizar una consulta sencilla. En la parte de validar ceertificados como se pone el certificado ??

X509Certificate2 objCert = … //Acá tenemos que poner el certificado

desde visual???? Gracias de antemano

]]>
Por: jcclmeguidoCampos https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15414 Fri, 24 Jul 2015 13:47:01 +0000 http://www.programandoamedianoche.com/?p=570#comment-15414 Gracias!!!

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15397 Tue, 02 Jun 2015 14:02:08 +0000 http://www.programandoamedianoche.com/?p=570#comment-15397 En respuesta a Teresa.

Buenos días, Teresa.
La pregunta obvia, pero necesaria, es: ¿Estás segura que estás utilizando la contraseña que utilizaste al crear el certificado?
Saludos.

]]>
Por: Teresa https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15396 Tue, 02 Jun 2015 10:47:29 +0000 http://www.programandoamedianoche.com/?p=570#comment-15396 Buenos días,

Magnifico post!!
He creado los certificados con makecert en lugar de con xml y solo tengo un problemilla cuando intento desencriptar me aparece el siguiente error:

«Excepción no controlada del tipo ‘System.Security.Cryptography.CryptographicException’ en System.Security.dll
Información adicional: Clave incorrecta.»

¿sabes que puedo hacer para solucionarlo?
Gracias.
Saludos.

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15370 Tue, 21 Apr 2015 19:11:23 +0000 http://www.programandoamedianoche.com/?p=570#comment-15370 En respuesta a Karla Sanz.

Hola, Karla.
La verdad que desconozco lo que es la FIEL. ¿Es una entidad? Si es así habría que ver qué tipo de certificado te brindan.
Saludos.

]]>
Por: Karla Sanz https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15369 Mon, 20 Apr 2015 20:54:01 +0000 http://www.programandoamedianoche.com/?p=570#comment-15369 Hola Gustavo,

Pregunta: La validación de firma, el encriptado y desencriptado funciona para un documento firmado con la FIEL?

Saludos

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15365 Mon, 06 Apr 2015 13:35:26 +0000 http://www.programandoamedianoche.com/?p=570#comment-15365 En respuesta a William Gomez.

Gracias por el dato!

]]>
Por: William Gomez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15364 Sun, 05 Apr 2015 21:17:22 +0000 http://www.programandoamedianoche.com/?p=570#comment-15364 En respuesta a William Gomez.

Solucionado en la parte de proyecto, elije añadir referencia–>Framework–>System Security

]]>
Por: William Gomez https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15363 Sun, 05 Apr 2015 20:56:37 +0000 http://www.programandoamedianoche.com/?p=570#comment-15363 Hola a todos

estoy utilizando visual studio community 2013 y me aparece que en la linea donde uso

using System.Security.Cryptography.Pkcs;

que el tipo o nombre del espacio de nombre «Pkcs» no existe en el espacio de nombres actual System.Security.Cryptography, sera por el tipo de visual studio que utilizo?

Gracias por su ayuda

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15345 Thu, 26 Feb 2015 17:55:06 +0000 http://www.programandoamedianoche.com/?p=570#comment-15345 En respuesta a D Fercho Prieto.

En este artículo no utilicés librerías externas, sólo las clases que están incluidas en el .NET Framework.
Saludos.

]]>
Por: D Fercho Prieto https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15344 Thu, 26 Feb 2015 16:20:33 +0000 http://www.programandoamedianoche.com/?p=570#comment-15344 Gustavo solo una duda q tipo de licencia tiene esta libreria?? para uso comercial

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15336 Fri, 13 Feb 2015 20:37:08 +0000 http://www.programandoamedianoche.com/?p=570#comment-15336 En respuesta a Giovanni Rugerio.

De nada, me alegra que haya sido de utilidad.

]]>
Por: Giovanni Rugerio https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15335 Fri, 13 Feb 2015 20:33:34 +0000 http://www.programandoamedianoche.com/?p=570#comment-15335 [+] Gracias por el contenido me ha sido de mucha utilidad.

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-15040 Mon, 28 Apr 2014 20:13:10 +0000 http://www.programandoamedianoche.com/?p=570#comment-15040 En respuesta a LCisterna.

Disculpas por la demora en responder.
¿Pudiste resolver el problema? Si no es así: ¿probaste de hacer que el application pool de tu aplicación web corra con un usuario que tenga permisos para ver los certificados en el servidor? (tal vez podrías usar el mismo usuario con el que instalaste los certificados) Asi podemos ver si es un tema de permisos.
Suerte!

]]>
Por: LCisterna https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14940 Tue, 15 Apr 2014 21:15:33 +0000 http://www.programandoamedianoche.com/?p=570#comment-14940 Hola Gustavo.
Muchas Gracias por toda la información que has entregado.

Estoy terminando un proyecto de firma Electronica en docs PDF (aplicación web) donde los certificados están instalados en el servidor (no pudimos hacer que funcionara con los certificados instalados en el cliente).

Pero cuando la quisimos poner en el servidor de explotación, no firmaba y enviaba el siguiente error: «No se encuentra el certificado y la clave privada para el descifrado».

Por lo que he leído podría ser problemas de privilegios sobre los certificados. Trate de darle permisos en el servidor con winhttpcertcfg -g -c LOCAL_MACHINE\TrustedPeople -s «certificado» -a IIS_IUSRS, pero ni siquiera esta la carpeta del winhttpcertcfg.

Mis preguntas son: será efectivamente problemas de privilegio y si es asi como puedo darle permisos en el servidor.

Muchas Gracias.

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14823 Tue, 25 Feb 2014 20:38:28 +0000 http://www.programandoamedianoche.com/?p=570#comment-14823 En respuesta a Carlos.

Hola, Carlos.
Te cuento que nosotros tuvimos el mismo problema para firmar un PDF con el certificado del usuario en una aplicación web.
Para resolverlo, creo yo, tenés dos posibilidades:
1- Pedirle al usuario que «seleccione» un archivo con su certificado, enviarlo al servidor y firmar el documento ahí. Obviamente esta opción no es viable debido a que estás llevando el certificado al servidor y podrías firmar 1000 cosas más, el usuario no creo que quiera correr el riesgo.
2- Hacer una aplicación o applet que corra en el cliente y firmar ahí el documento (esta es la que hicimos nosotros). En nuestro caso desarrollamos una aplicación con Silverlight que obtenía el header del PDF a firmar, lo recibía en el cliente, lo firmaba con el certificado de éste, lo enviaba al servidor, y ahí lo ensamblábamos con el resto del documento. Esto no fue una tarea sencilla, pero pudimos hacer que funcione.
Espero te sirvan las ideas.
Suerte!

]]>
Por: Carlos https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14822 Tue, 25 Feb 2014 20:27:03 +0000 http://www.programandoamedianoche.com/?p=570#comment-14822 Hola Gustavo, realmente muy buenos tus artículos, quisiera hacerte un par de consultas. Yo ya he hecho una aplicación windows para firmar documentos PDF. Las clases de .Net lo resuelven muy bien y se puede usar la clave privada sin problemas.
El inconveniente lo tengo a la hora de hacer una aplicación web, donde el documento se aloja en servidor y el certificado (con su clave privada) está en la PC del cliente.
Y la otra consulta es, cómo hacer más amplia la aplicación web para que el cliente pueda firmar desde cualquier lugar, llevando consigo, por ejemplo, un eToken.
Te agradeceré me puedas encaminar un poco con estos dos temas.
Saludos, Carlos

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14709 Wed, 08 Jan 2014 13:06:11 +0000 http://www.programandoamedianoche.com/?p=570#comment-14709 En respuesta a Juan.

Hola, Juan.
La verdad que no tengo idea del problema.
¿Podrás copiar el código completo para verlo y tratar de ayudarte?
Suerte!

]]>
Por: Juan https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14646 Thu, 19 Dec 2013 16:35:49 +0000 http://www.programandoamedianoche.com/?p=570#comment-14646 Buen día Gustavo. Excelente aporte, me ha ayudado mucho y prácticamnete todo el código me ha funcionado. Estoy probándolo en C# Visual Studio 2005 y solo tengo un error en la línea de desencriptación:

//Desencriptamos los datos
objEncryptedData1.Decrypt();

Ahí se genera un error:
Source: System.Security
Message: «Bad Length.\r\n»

La asignación de los datos ecriptados la tengo así:
byte[] bytDatos = bytResult; //Datos encriptados

El certificado está en un eToken PRO72k.

Alguna idea o guía del origen de este error?

]]>
Por: shespi1088 https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14610 Fri, 06 Dec 2013 22:29:13 +0000 http://www.programandoamedianoche.com/?p=570#comment-14610 Gustaba aun puedes ayudar

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14586 Mon, 18 Nov 2013 12:17:27 +0000 http://www.programandoamedianoche.com/?p=570#comment-14586 En respuesta a Carlos Palma.

El código que se ve en la página puede ejecutarse en cualquier contexto (asp.net, consola, etc.).
Los fuentes que están al final del artículo para descargarse tienen un ejemplo completo en WinForm.
Saludos.

]]>
Por: Carlos Palma https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14585 Mon, 18 Nov 2013 05:18:53 +0000 http://www.programandoamedianoche.com/?p=570#comment-14585 Una consulta, en que tipo de aplicacion esta realizado estos ejemplos?? ASPX?? desktop?? consola??

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14582 Wed, 13 Nov 2013 12:22:54 +0000 http://www.programandoamedianoche.com/?p=570#comment-14582 En respuesta a Alexfr8.

Muchas gracias por el aporte!
Saludos.

]]>
Por: Alexfr8 https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14581 Wed, 13 Nov 2013 11:03:31 +0000 http://www.programandoamedianoche.com/?p=570#comment-14581 Buenas, solo una pequeña reseña para los que utilicen DNI electronico en España.
El que quiera firmar usando DNIe Debe usar el codigo con el modo silent en false.

Concretamente esta linea.
objSignedData.ComputeSignature(objSigner,false);

En otro caso no conseguirar liberar el certificado y no pedirá el PIN de acceso a la tarjeta.

Saludos.

]]>
Por: Indalecio Trujillo https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14552 Thu, 31 Oct 2013 21:02:39 +0000 http://www.programandoamedianoche.com/?p=570#comment-14552 Realice el siguiente ejemplo http://www.codeproject.com/Articles/36683/9-simple-steps-to-enable-X-509-certificates-on-WCF?msg=4691986#xx4691986xx

Todo funciona de manera correcta en ambiente de desarrollo, pero al mover el certificado al servidor de produccion veo el siguiente error.

El conjunto de claves no existe

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

«Detalles de la excepción: System.Security.Cryptography.CryptographicException: El conjunto de claves no existe»

En el servidor he puesto el certificado en el almacen de la computadora pero aun asi no funciona.

Al momento de exportar el certificado he exportado tanto clave publica como clave privada.

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14529 Mon, 16 Sep 2013 19:02:35 +0000 http://www.programandoamedianoche.com/?p=570#comment-14529 En respuesta a José Vindas.

Desde el IIS podés solicitar que el usuario ingrese a tu aplicación con un certificado digital, pero no podés leer la clave privada, sólo la pública, sino podrías hacer una suplantación de identidad.
Seguro estos links te pueden ayudar:
Cómo: Instalar certificados de cliente
IIS 7 Walkthrough: One to One Client Certificate Mapping Configuration.
Suerte!

]]>
Por: José Vindas https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14528 Mon, 16 Sep 2013 18:09:30 +0000 http://www.programandoamedianoche.com/?p=570#comment-14528 En respuesta a Gustavo Cantero (The Wolf).

ok te entiendo! y de nuevo disculpa que siga con las pregs pero es que tengo esa duda!!

Hay alguna forma, con X509Store, que desde mi aplicación web (asp.net) que se encuentra sobre mi servidor, leer los certificados del usuario (que él tiene instalados en su pc)???

Esa es la base de lo que ocupo!
De nuevo perdona la molestia y gracias por las respuestas!!

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14527 Mon, 16 Sep 2013 17:48:36 +0000 http://www.programandoamedianoche.com/?p=570#comment-14527 En respuesta a José Vindas.

José, en realidad el usuario ya ingresó una contraseña al logearse, ya que sino no podría usar los certificados de su repositorio.
De todas formas, la clave privada no es un texto que pueda usar, es un array de bytes.
Tal vez lo que podrías hacer es que el usuario ingrese un «password», lo firmes con su certificado y luego verifiqués, a través de la aplicación, si su contraseña es la correcta y si la firma digital corresponde al certificado que tenés guardado con suyo.
Suerte!

]]>
Por: José Vindas https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14526 Mon, 16 Sep 2013 16:21:27 +0000 http://www.programandoamedianoche.com/?p=570#comment-14526 En respuesta a Gustavo Cantero (The Wolf).

Gustavo antes que nada gracias por responder.

No se, si tenes idea si esto se puede usar para leer los certificados instalados en la computadora de cada usuario.
Te explico rápido lo que estoy haciendo.
Un usuario entra al sistema(ya teniendo su firma instalada en su propia pc), yo quiero leer su firma y entonces una vez que la leo proceso que digite su llave privada para poder validarla y ya con eso avanzo en mi proceso.

No se si tenes algún tipo de información o ayuda que me podas brindar, de antemano muchas gracias!!

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14515 Thu, 12 Sep 2013 15:01:59 +0000 http://www.programandoamedianoche.com/?p=570#comment-14515 En respuesta a Andres Bustos.

Hola, Andrés.
La verdad nunca tuve que hacer esto, pero seguro que estas páginas pueden serte de utilidad: WCF – 2 Way SSL Security using Certificates y Use Mutual SSL Authentication in WCF.
Suerte!

]]>
Por: Andres Bustos https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14514 Wed, 11 Sep 2013 20:45:26 +0000 http://www.programandoamedianoche.com/?p=570#comment-14514 Hola, estoy tratando de consumir un servicio que solicita autenticacion SSL TWO WAY,ya tengo mi certificado en el keystore y lo puedo levantar desde el codigo, como deberia hacer para enviar mi certificado autenticarme en el webservice para poder consumirlo. estoy trabajando con vb2008 en C#.
gracias

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14458 Tue, 27 Aug 2013 12:24:17 +0000 http://www.programandoamedianoche.com/?p=570#comment-14458 En respuesta a José Vindas.

José, creo que el problema es que, cuando ejecutás tu aplicación en el IIS, el usuario que utiliza es el IUSR_XXX (XXX es el nombre de la máquina), por eso es que no encuentra el certificado.
Te recomiendo instalar el certificado a nivel de máquina, si es que esto no te trae ningún problema de seguridad (como que otro usuario en ese servidor pueda leer el certificado).
Suerte!

]]>
Por: José Vindas https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14453 Mon, 26 Aug 2013 18:22:07 +0000 http://www.programandoamedianoche.com/?p=570#comment-14453 Buenas, tengo una duda, para hacer el desarrollo funciono a la perfección, pero tengo el problema que cuando lo coloco en mi servidor, no lee los certificados del cliente! tenes algún consejo para eso???
Para leer los certificados del cliente utilizo StoreLocation.CurrentUser.

Gracias de antemano.

]]>
Por: diegosantosinsua https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14385 Thu, 15 Aug 2013 23:01:30 +0000 http://www.programandoamedianoche.com/?p=570#comment-14385 te felicito y muchas gracias por la potencia de los datos !!!

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14351 Mon, 12 Aug 2013 13:02:05 +0000 http://www.programandoamedianoche.com/?p=570#comment-14351 En respuesta a SilviaR.

Hola, Silvia.
La verdad que no conozco una forma de «invertir» las claves, pero igual no entiendo para que podrías necesitar algo así, ya que en ese caso lo que cifres de forma «privada» lo podría ver todo el mundo, pudiéndolo descifrar con la clave pública.
Saludos.

]]>
Por: SilviaR https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14350 Sun, 11 Aug 2013 22:26:07 +0000 http://www.programandoamedianoche.com/?p=570#comment-14350 Hola Gustavo buena tarde,
tu página me ha servido mucho para aprender y comprender como funciona la criptografía, son excelentes aportes. Pero tengo una duda, si bien se puede cifrar con la llave publica y descrifrar con la privada.. existe el proceso contrario? cifrar con privada y descifrar con publica?.. Bouncy Castle tiene los metodos para hacerlo? espero puedas apoyarme a resolver esta duda.. es que esta libreria es enorme. Saludos 🙂

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14280 Wed, 26 Jun 2013 16:20:28 +0000 http://www.programandoamedianoche.com/?p=570#comment-14280 En respuesta a giancarlo.

La verdad que nunca lo hice.
Saludos.

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14109 Wed, 03 Apr 2013 14:01:59 +0000 http://www.programandoamedianoche.com/?p=570#comment-14109 En respuesta a Ubaldo.

Es raro, disculpá pero no sé que puede hacer.
Por favor, cuando lo resuelvas, comentame cómo hcisite.
Suerte!

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14108 Wed, 03 Apr 2013 14:00:22 +0000 http://www.programandoamedianoche.com/?p=570#comment-14108 En respuesta a Leonel.

La verdad que nunca necesité hacer eso.
¿Probaste de crear la firma utilizando Bouncy Castle?
Fijate que hay muchísimos ejemplos de esta librería en la red.
Suerte!

]]>
Por: Leonel https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14049 Tue, 26 Mar 2013 17:04:50 +0000 http://www.programandoamedianoche.com/?p=570#comment-14049 Hola Gustavo,
Soy de Ecuador y estoy tratando de firma un documento XML, tengo un avance del tema pero no consigo encontrar algunos valores en el certificado ejemplo «QualifyingProperties», o «Signedproperties». Por favor ayudame con un empujon para encontrar una solucion.

muchas gracias.
Te felicito por tu Blog…

]]>
Por: Ubaldo https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14031 Fri, 22 Mar 2013 00:55:36 +0000 http://www.programandoamedianoche.com/?p=570#comment-14031 En respuesta a Gustavo Cantero (The Wolf).

En efecto Gustavo, el contenedor esta en otro servidor y ambos estan en el mismo segmento de red y el usuario que quiero utilizar para el impersonate es un usuario de dominio

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14028 Wed, 20 Mar 2013 19:25:53 +0000 http://www.programandoamedianoche.com/?p=570#comment-14028 En respuesta a Ubaldo.

Pero hay algo que no entiendo: si el contenedor no pertenece a ese servidor, o sea que está en otro servidor, el usuario con el que hacés la impersonalización es de un dominio?

]]>
Por: Ubaldo https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14027 Wed, 20 Mar 2013 19:05:36 +0000 http://www.programandoamedianoche.com/?p=570#comment-14027 En respuesta a Gustavo Cantero (The Wolf).

Hola Gustavo,
De hecho si le di los permisos y con esos trabaja de maravilla, la cuestion es que necesito guardar los documentos en un contenedor que no pertenece a ese servidor y cuando utilizo el impersonate para poner el usuario y que pueda guardar, es cuando me da los problemas y ya agregue mediante la consola del mmc el usuario de IIS, el Network Service y hasta el uduario que utilizo en el impersonate, pero me sigue dando el error, vi en algunos blog algo que se realiza mediante la clase cacls.exe, segun para al usuario darle permisos de escritura y ejecucion, pero hasta el momento sigo intentando

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14026 Wed, 20 Mar 2013 16:12:31 +0000 http://www.programandoamedianoche.com/?p=570#comment-14026 En respuesta a Ubaldo.

Hola, Ubaldo.
¿Es raro lo que te pasa, probaste dándole permisos también al usuario del IIS?

]]>
Por: Ubaldo https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14022 Tue, 19 Mar 2013 23:53:06 +0000 http://www.programandoamedianoche.com/?p=570#comment-14022 Hola Gustavo,
Tengo un problema de encriptacion y buscando por la web me encontre tus grandes aportes sobre el manejo de certificados y quiero ver si me puedes ayudar o iluminarme, mi problema consiste en que mi solucion en el servidor funciona de maravilla, pero para guardar documentos en otra ruta utilice el impersonate en el web config, al generar este cambio ahora tengo problemas de que las llaves no existen, busque informacion y ya le di permisos a los certificados mediante la consola de mmc, pero aun asi me sigue mandando el error, espero puedas ayudarme o indicarme como puedo resolver mi problema, saludos.

An unhandled exception occurred and the process was terminated.
Application ID: /LM/W3SVC/2/ROOT
Process ID: 6292
Exception: System.Security.Cryptography.CryptographicException

Message: Keyset does not exist

StackTrace: at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
at System.Security.Cryptography.SafeKeyHandle._FreeHKey(IntPtr pKeyCtx)
at System.Security.Cryptography.SafeKeyHandle.ReleaseHandle()
at System.Runtime.InteropServices.SafeHandle.InternalFinalize()
at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing)

]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14017 Mon, 18 Mar 2013 12:28:09 +0000 http://www.programandoamedianoche.com/?p=570#comment-14017 En respuesta a HENRY.

No hay problema, te acabo de enviar un mail a tu cuenta.
Saludos!

]]>
Por: HENRY https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-14013 Sat, 16 Mar 2013 23:33:58 +0000 http://www.programandoamedianoche.com/?p=570#comment-14013 GUSTAVO SOY UN ESTUDIANTE DE ULTIMO SEMESTRE DE LA CARRERA DE ING DE SISTEMAS, PARA MI PROYECTO DE GRADO ESTABA PENSANDO HACER UN SISTEMA WEB Q ADMINISTRE LA CORRESPONDENCIA INTERNA DE MI UNIVERSIDAD APLICANDO FIRMAS DIGITALES, LA VERDAD TU APORTE ME ABRIO UN POCO LA MENTE Y ME DIO MASOMENOS UNA IDEA DE COMO HACERLO, QUISIERA SABER SI PODRIAMOS COMUNICARNOS VIA MAIL PARA QUE PUEDA COMENTARTE DE LO Q ESTOY PLANTEANDO Y TAL VEZ ME PUEDAS DAR ALGUNOS CONSEJOS

MUCHAS GRACIAS DE ANTEMANO POR TU TIEMPO

]]>
Por: Jose Tejada https://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/#comment-13936 Tue, 29 Jan 2013 18:32:21 +0000 http://www.programandoamedianoche.com/?p=570#comment-13936 Hola Gustavo,

muchas gracias por tu artículo.

En estos momentos estamos valorando un proyecto en el que el cliente desea que los usuarios puedan firmar algunos documentos digitalmente.

Esta aplicación será web y estará alojada en un servidor en que el se accederá desde algunos terminales, y desde estos, se debe poder firmar digitalmente.

El problema es que no acabo de entender aún como funciona esto, te explico:

En estos terminales habrá un usuario que atenderá a clientes, realizará las acciones oportunas en la aplicación web, y llegará el momento que se abrirá un documento PDF que necesita ser firmado digitalmente por el cliente. Esto lo hará el usuario en el terminal pero a través del DNI del cliente.

Ahora las preguntas:

Cada vez que se lea un DNI, se generará un certificado en ese terminal ? Si es así y debido a que existirán el de todos los clientes que hayan pasado, se deberá siempre seleccionar en la aplicación el que sea en ese momento no ?

Espero que hayas entendido el planteamiento para que me puedas ayudar un poco en como funciona esto según las necesidades de este proyecto.

Muchisimas gracias por tu artículo y tu ayuda.

]]>