Como incluir certificado en el XML

Cualquier asunto relacionado con Certificados Digitales, Rango de Folios Autorizados, Addendas Comerciales y Complementos se cubren aqui
kike8570
Mensajes: 5
Registrado: Mié Nov 03, 2010 7:47 pm

Como incluir certificado en el XML

Mensajepor kike8570 » Vie Ene 07, 2011 4:37 pm

buenas tardes

como se debe de incluir el certificado en el xml

se que es opcional pero un cliente me lo pide

gracias
Enrique M

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Como incluir certificado en el XML

Mensajepor Dado » Vie Ene 07, 2011 4:46 pm

Para pasar el certificado a base64 y poderlo poner en el XML debes usar

openssl.exe x509 -inform DER -in "aaa010101aaa_CSD_01.cer" > "Cert.txt"

en Cert.txt esta el "chorizo" formado unicamente de letras y numeros (no hay caracteres raros) y eso es lo que tienes que poner en el atributo "certificado" del nodo <Comprobante>

Saludos,
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

Avatar de Usuario
DeeNeon
Mensajes: 18
Registrado: Lun Dic 27, 2010 11:46 am
Ubicación: La Paz, BCS
Contactar:

Re: Como incluir certificado en el XML

Mensajepor DeeNeon » Lun Ene 17, 2011 6:53 pm

DADO escribió:Para pasar el certificado a base64 y poderlo poner en el XML debes usar

openssl.exe x509 -inform DER -in "aaa010101aaa_CSD_01.cer" > "Cert.txt"

en Cert.txt esta el "chorizo" formado unicamente de letras y numeros (no hay caracteres raros) y eso es lo que tienes que poner en el atributo "certificado" del nodo <Comprobante>

Saludos,


No seria el sello lo que dices, DADO?! porque tengo el mismo problema que el compañero

Cargo el archivo con

Código: Seleccionar todo

X509Certificate2 certificado = new X509Certificate2(ArchivoCertificado, elPwd);

y apartir de solo puedo obtener su NoCertificado, cosas asi, pero no el "chorizo" que dices, si alguien tiene alguna idea de como obtenerlo seria de gran ayuda.

lcarrasco
Mensajes: 15
Registrado: Mié Nov 10, 2010 3:11 pm

Re: Como incluir certificado en el XML

Mensajepor lcarrasco » Lun Ene 17, 2011 7:03 pm

DeeNeon escribió:
DADO escribió:Para pasar el certificado a base64 y poderlo poner en el XML debes usar

openssl.exe x509 -inform DER -in "aaa010101aaa_CSD_01.cer" > "Cert.txt"

en Cert.txt esta el "chorizo" formado unicamente de letras y numeros (no hay caracteres raros) y eso es lo que tienes que poner en el atributo "certificado" del nodo <Comprobante>

Saludos,


No seria el sello lo que dices, DADO?! porque tengo el mismo problema que el compañero

Cargo el archivo con

Código: Seleccionar todo

X509Certificate2 certificado = new X509Certificate2(ArchivoCertificado, elPwd);

y apartir de solo puedo obtener su NoCertificado, cosas asi, pero no el "chorizo" que dices, si alguien tiene alguna idea de como obtenerlo seria de gran ayuda.


Hola amigo en la libreria que hice viene como, especificamente en el siguiente archivo/linea:
https://github.com/bambucode/tfacturael ... l.pas#L439

NOTA: Necesitaras tambien el archivo: https://github.com/bambucode/tfacturael ... s.pas#L482 ahi mismo viene la linea donde se define el metodo AsBase64

PD. El metodo de dado tambien es valido solo que su metodo mandar llamar al openssl.exe y mi metodo es directo con el DLL del OpenSSL, ambos validos y cuestion de gustos.

Avatar de Usuario
DeeNeon
Mensajes: 18
Registrado: Lun Dic 27, 2010 11:46 am
Ubicación: La Paz, BCS
Contactar:

Re: Como incluir certificado en el XML

Mensajepor DeeNeon » Lun Ene 17, 2011 7:13 pm

Gracias! le echare una hojeada!

vms
Mensajes: 5
Registrado: Mar Ene 18, 2011 11:07 am

Re: Como incluir certificado en el XML

Mensajepor vms » Mar Ene 18, 2011 12:57 pm

lcarrasco escribió:
DeeNeon escribió:
DADO escribió:Para pasar el certificado a base64 y poderlo poner en el XML debes usar

openssl.exe x509 -inform DER -in "aaa010101aaa_CSD_01.cer" > "Cert.txt"

en Cert.txt esta el "chorizo" formado unicamente de letras y numeros (no hay caracteres raros) y eso es lo que tienes que poner en el atributo "certificado" del nodo <Comprobante>

Saludos,


No seria el sello lo que dices, DADO?! porque tengo el mismo problema que el compañero

Cargo el archivo con

Código: Seleccionar todo

X509Certificate2 certificado = new X509Certificate2(ArchivoCertificado, elPwd);

y apartir de solo puedo obtener su NoCertificado, cosas asi, pero no el "chorizo" que dices, si alguien tiene alguna idea de como obtenerlo seria de gran ayuda.


Hola amigo en la libreria que hice viene como, especificamente en el siguiente archivo/linea:
https://github.com/bambucode/tfacturael ... l.pas#L439

NOTA: Necesitaras tambien el archivo: https://github.com/bambucode/tfacturael ... s.pas#L482 ahi mismo viene la linea donde se define el metodo AsBase64

PD. El metodo de dado tambien es valido solo que su metodo mandar llamar al openssl.exe y mi metodo es directo con el DLL del OpenSSL, ambos validos y cuestion de gustos.


Si quieres la cadena del certificado, yo lo hice asi en C#

Código: Seleccionar todo


X509Certificate2 certEmisor = new X509Certificate2();
byte[] byteCertData = ReadFile(strCertificado);
certEmisor.Import(byteCertData);
Convert.ToBase64String(certEmisor.GetRawCertData());


strCertificado es la ruta de tu archivo .cer

Espero te sirva esto..

Saludos :)

Avatar de Usuario
DeeNeon
Mensajes: 18
Registrado: Lun Dic 27, 2010 11:46 am
Ubicación: La Paz, BCS
Contactar:

Re: Como incluir certificado en el XML

Mensajepor DeeNeon » Mar Ene 18, 2011 2:07 pm

Gracias por la aportacion anterior, lo que sucede aqui es que no es solo leer el archivo .cer sino que leerlo como tal no proporciona el campo "certificado" dentro del XML, para hacer eso, es como dijo DADO: aplicas openssl.exe x509 -inform DER, esto convierte el archivo certificado en un PEM y ahora lo que esta dentro de el es lo que hay que extraer dando la salida en un TXT (de preferencia), el asunto aqui es que el openssl es para aplicaciones cliente, mi ambiente esta en el CFDI y no hayo forma de convertir el archivo al vuelo y agregarlo al XML en el ASP.Net. Creo que habra que seguir buscando...

Gracias de cualquier forma!

vms
Mensajes: 5
Registrado: Mar Ene 18, 2011 11:07 am

Re: Como incluir certificado en el XML

Mensajepor vms » Mar Ene 18, 2011 2:22 pm

DeeNeon escribió:Gracias por la aportacion anterior, lo que sucede aqui es que no es solo leer el archivo .cer sino que leerlo como tal no proporciona el campo "certificado" dentro del XML, para hacer eso, es como dijo DADO: aplicas openssl.exe x509 -inform DER, esto convierte el archivo certificado en un PEM y ahora lo que esta dentro de el es lo que hay que extraer dando la salida en un TXT (de preferencia), el asunto aqui es que el openssl es para aplicaciones cliente, mi ambiente esta en el CFDI y no hayo forma de convertir el archivo al vuelo y agregarlo al XML en el ASP.Net. Creo que habra que seguir buscando...

Gracias de cualquier forma!

Pues.. asi es como yo genero el campo certificado (cfdi.certificado en mi codigo)
estoy generando facturas de prueba y SAT me dice que todo esta bien y el validaCFD de Dado me dice lo mismo..
si usas .net no hagas tanto rollo con openssl y demas.. no es necesario.. en mi codigo no tengo llamados a nada del openssl..
te anexo de nuevo el codigo

Código: Seleccionar todo


X509Certificate2 certEmisor = new X509Certificate2(); // Generas un objeto del tipo de certificado
byte[] byteCertData = ReadFile(strCertificado); // Manda llamar la funcion Readfile para cargar el archivo .cer
certEmisor.Import(byteCertData); // Importa los datos del certificado qeu acabas de leer
Convert.ToBase64String(certEmisor.GetRawCertData()); // Conviertelos a Base64

// Funcion para leer archivo
// Se me paso ponertelo en el post anterior, disculpa :)
internal static byte[] ReadFile(string strArchivo) {
     FileStream f = new FileStream(strArchivo, FileMode.Open, FileAccess.Read);
     int size = (int)f.Length;
     byte[] data = new byte[size];
     size = f.Read(data, 0, size);
     f.Close();
     return data;
}

Avatar de Usuario
DeeNeon
Mensajes: 18
Registrado: Lun Dic 27, 2010 11:46 am
Ubicación: La Paz, BCS
Contactar:

Re: Como incluir certificado en el XML

Mensajepor DeeNeon » Mar Ene 18, 2011 2:42 pm

vms escribió:
DeeNeon escribió:Gracias por la aportacion anterior, lo que sucede aqui es que no es solo leer el archivo .cer sino que leerlo como tal no proporciona el campo "certificado" dentro del XML, para hacer eso, es como dijo DADO: aplicas openssl.exe x509 -inform DER, esto convierte el archivo certificado en un PEM y ahora lo que esta dentro de el es lo que hay que extraer dando la salida en un TXT (de preferencia), el asunto aqui es que el openssl es para aplicaciones cliente, mi ambiente esta en el CFDI y no hayo forma de convertir el archivo al vuelo y agregarlo al XML en el ASP.Net. Creo que habra que seguir buscando...

Gracias de cualquier forma!

Pues.. asi es como yo genero el campo certificado (cfdi.certificado en mi codigo)
estoy generando facturas de prueba y SAT me dice que todo esta bien y el validaCFD de Dado me dice lo mismo..
si usas .net no hagas tanto rollo con openssl y demas.. no es necesario.. en mi codigo no tengo llamados a nada del openssl..
te anexo de nuevo el codigo

Código: Seleccionar todo


X509Certificate2 certEmisor = new X509Certificate2(); // Generas un objeto del tipo de certificado
byte[] byteCertData = ReadFile(strCertificado); // Manda llamar la funcion Readfile para cargar el archivo .cer
certEmisor.Import(byteCertData); // Importa los datos del certificado qeu acabas de leer
Convert.ToBase64String(certEmisor.GetRawCertData()); // Conviertelos a Base64

// Funcion para leer archivo
// Se me paso ponertelo en el post anterior, disculpa :)
internal static byte[] ReadFile(string strArchivo) {
     FileStream f = new FileStream(strArchivo, FileMode.Open, FileAccess.Read);
     int size = (int)f.Length;
     byte[] data = new byte[size];
     size = f.Read(data, 0, size);
     f.Close();
     return data;
}


Amigo... me acabas de aclarar la duda de 8 dias!!! te lo agradezco de verdad!! funciona perfectamente!
Intente hacer algo similar como lo haces tu, pero siempre me marcaba el fabuloso error del "System.FormatException: Invalid length for a Base-64 char array" y pense en seguirle por otro lado... no sabes cuanto te debo! mil gracias!!

vms
Mensajes: 5
Registrado: Mar Ene 18, 2011 11:07 am

Re: Como incluir certificado en el XML

Mensajepor vms » Mar Ene 18, 2011 3:27 pm

DeeNeon escribió:
Amigo... me acabas de aclarar la duda de 8 dias!!! te lo agradezco de verdad!! funciona perfectamente!
Intente hacer algo similar como lo haces tu, pero siempre me marcaba el fabuloso error del "System.FormatException: Invalid length for a Base-64 char array" y pense en seguirle por otro lado... no sabes cuanto te debo! mil gracias!!


Pos te paso mi cuenta de BBV y vemos de a cuanto me agradeces :D jajajajajaj ntc..
no hay problema.. yo se que todo esto de los CFD's es un desma. y quien conoce no dice nada, o dice cosas
a medias y de repente nos dejan "pior" que como estabamos cuando empezamos jajaja..

Un placer ayudarte.. :)

Saludos..


Volver a “Certificados, Folios, Addendas y Complementos”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados