Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03

Error al validar el sello .. "Sello del Emisor Inválido"

Es tan comun este tema que he decidido abrir un foro especial para este caso. Se trata de programadores que tienen problemas para crear el Sello Digital y que no pasan la validacion
RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 8:41 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor RickAlanis » Mié Jul 04, 2012 10:02 am

Esto es lo que yo hago

Esto se hace cuando cargas por primera vez el certificado, para que no lo hagas siempre:

Código: Seleccionar todo


<!-- Cambio el formato de "certificado.cer" a PEM (O sea: Base64) -->
OpenSSL x509 -inform DER -outform PEM -in ElCSD.cer -pubkey > Certificado.pem
<!-- Cambio el formato de la llave privada (archivo que se incluye) de ".key" a PEM -->
OpenSSL pkcs8 -inform DER -in ElCSD.key -passin pass:elPswword -out"+" key.pem"


Una vez calculada la Cadena Original, hay que codificarla:

Código: Seleccionar todo


<!-- Aquí, en una sola instrucción, hago el hash SHA-1 y lo "firmo" con la llave privada  -->
OpenSSL dgst -sha1 -sign key.pem cadenaOr.txt digestion.bin
<!-- Lo codifico en Base64 para poder incluirlo en el XML como "sello" -->
<!-- El parámetro -A (mayúscula) le dice que no le agregue saltos de línea, que lo haga en una sola línea -->
OpenSSL enc -base64 -A -in digestion.bin -out sello.txt


Para incluir el certificado en el XML, debes primero quitarle la línea inicial y la final (BEGIN/END CERTIFICATE) al archivo Certificado.pem, pero también (muy importante) los Carriage Return o Line Feed que contenga. En el ejemplo que mandas al principio, quedan los linefeed incluidos y no debe ser.

La instrucción que usas para transformar el Certificado.cer a texto no es correcta, hasta donde sé.

Espero que te sirva.

¡Saludos!

novasebas666
Mensajes: 23
Registrado: Mar Ene 04, 2011 4:39 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor novasebas666 » Mié Jul 04, 2012 4:57 pm

RickAlanis escribió:Esto es lo que yo hago

Esto se hace cuando cargas por primera vez el certificado, para que no lo hagas siempre:

Código: Seleccionar todo


<!-- Cambio el formato de "certificado.cer" a PEM (O sea: Base64) -->
OpenSSL x509 -inform DER -outform PEM -in ElCSD.cer -pubkey > Certificado.pem
<!-- Cambio el formato de la llave privada (archivo que se incluye) de ".key" a PEM -->
OpenSSL pkcs8 -inform DER -in ElCSD.key -passin pass:elPswword -out"+" key.pem"


Una vez calculada la Cadena Original, hay que codificarla:

Código: Seleccionar todo


<!-- Aquí, en una sola instrucción, hago el hash SHA-1 y lo "firmo" con la llave privada  -->
OpenSSL dgst -sha1 -sign key.pem cadenaOr.txt digestion.bin
<!-- Lo codifico en Base64 para poder incluirlo en el XML como "sello" -->
<!-- El parámetro -A (mayúscula) le dice que no le agregue saltos de línea, que lo haga en una sola línea -->
OpenSSL enc -base64 -A -in digestion.bin -out sello.txt


Para incluir el certificado en el XML, debes primero quitarle la línea inicial y la final (BEGIN/END CERTIFICATE) al archivo Certificado.pem, pero también (muy importante) los Carriage Return o Line Feed que contenga. En el ejemplo que mandas al principio, quedan los linefeed incluidos y no debe ser.

La instrucción que usas para transformar el Certificado.cer a texto no es correcta, hasta donde sé.

Espero que te sirva.

¡Saludos!


Muchisimas gracias por el aporte... ya en breve haré las pruebas para saber si ya se valida el sello.

novasebas666
Mensajes: 23
Registrado: Mar Ene 04, 2011 4:39 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor novasebas666 » Mié Jul 04, 2012 4:58 pm

La verdad no hay mejor foro que este para dar una buena respuesta... nada que ver con los del sat que nunca te pueden responder las dudas.... jejejejej

SALUDOS A TODOS..... LA VERDAD QUE ESTE FORO ES LA LEY.... :ugeek:

RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 8:41 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor RickAlanis » Mié Jul 04, 2012 5:12 pm

uuuups..
Un pequeño error en uno de los comandos:

Original:

Código: Seleccionar todo

<!-- Aquí, en una sola instrucción, hago el hash SHA-1 y lo "firmo" con la llave privada  -->
OpenSSL dgst -sha1 -sign key.pem cadenaOr.txt digestion.bin


Corregido:

Código: Seleccionar todo

<!-- Aquí, en una sola instrucción, hago el hash SHA-1 y lo "firmo" con la llave privada  -->
OpenSSL dgst -sha1 -sign key.pem -out digestion.bin cadenaOr.txt

El orden de los archivos es:
1) llave privada (Ya existe al momento de llamar a este comando)
2) archivo donde quedará la digestión (así se le llama a la operación)(se va a crear con este comando)
3) la cadena que vas a firmar (Ya existe al momento de llamar a este comando)

Voy a editar el comentario donde lo coloqué en primer lugar, para que no se confunda la raza.

Perdón y saludos :oops:

RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 8:41 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor RickAlanis » Mié Jul 04, 2012 5:14 pm

¡Ya no lo puedo editar!

Favor de tomar nota.

Gracias

novasebas666
Mensajes: 23
Registrado: Mar Ene 04, 2011 4:39 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor novasebas666 » Jue Jul 05, 2012 12:49 pm

RickAlanis escribió:uuuups..
Un pequeño error en uno de los comandos:

Original:

Código: Seleccionar todo

<!-- Aquí, en una sola instrucción, hago el hash SHA-1 y lo "firmo" con la llave privada  -->
OpenSSL dgst -sha1 -sign key.pem cadenaOr.txt digestion.bin


Corregido:

Código: Seleccionar todo

<!-- Aquí, en una sola instrucción, hago el hash SHA-1 y lo "firmo" con la llave privada  -->
OpenSSL dgst -sha1 -sign key.pem -out digestion.bin cadenaOr.txt

El orden de los archivos es:
1) llave privada (Ya existe al momento de llamar a este comando)
2) archivo donde quedará la digestión (así se le llama a la operación)(se va a crear con este comando)
3) la cadena que vas a firmar (Ya existe al momento de llamar a este comando)

Voy a editar el comentario donde lo coloqué en primer lugar, para que no se confunda la raza.

Perdón y saludos :oops:


Disculpa "RickAlanis", realize cambios en el BAT que uso para usar las lineas que manejas.. y aun no tengo una validacion, es mas ni el archivo sello.txt se genera..
Sera? que estoy usando de forma incorrecta el proceso???
En cuanto pueda publico el archivo bat... para que puedan indicarque en donde estoy mal... :ugeek:
Tambien tengo esta duda... Sera que es cuestión de la versión del OpenSSL????

RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 8:41 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor RickAlanis » Jue Jul 05, 2012 2:10 pm

Verificaré después. Por lo pronto te diré que yo uso la versión 0.9.8r del 8 de Feb. del 2011, de acuerdo a lo que contesta "Openssl version"

Sí me gustaría ver cómo es que timbras.

¡Saludos!

novasebas666
Mensajes: 23
Registrado: Mar Ene 04, 2011 4:39 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor novasebas666 » Vie Jul 06, 2012 12:04 am

RickAlanis escribió:Verificaré después. Por lo pronto te diré que yo uso la versión 0.9.8r del 8 de Feb. del 2011, de acuerdo a lo que contesta "Openssl version"

Sí me gustaría ver cómo es que timbras.

¡Saludos!


Aqui te dejo el proceso que utilizo para dizque calcular el sello.

Estas lineas son las que se encuentran en mi archivo.bat
openssl pkcs8 -inform DER -in Llave.key -passin pass:contraseña -out Llave.key.pem
openssl dgst -sha1 -sign Llave.key.pem cadenaoriginal.txt | openssl enc -base64 -A > sello.txt

Este codigo me funcionaba para la version 2.0, peroo en esta version no me genera un sello válido. Ves algun problema en el proceso que utilizo?

Cuando lo valido en ValidaCFD, me dice que todo esta correcto excepto el sello del emisor, y cuando lo valido en el SAT, todo esta correcto con excepción del Sello del comprobante.

Esta es la cadena que genero:
||2.2|1540|2012-07-06T00:38:15|286534|2010|ingreso|Pago en una sola Exhibición|926.72|1074.99|Efectivo|Mérida,Yucatán|1.00|MXN|AMD920923I42|ABO Mayoreo en Decoración S.A. de C.V.|35|253|Chuburná de Hidalgo|Mérida|Mérida|Yucatán|México|97200|Calle 35 No.253 Chuburná de Hidalgo C.P.97200 Mérida,Yucatán,México|Mérida|Yucatán|México|Régimen General de Ley Personas Morales|REQA590828IZ3|Rebolledo Quintero Jose Agustin|Calle. 35 No.119 Colonia Tecolutla C.P. 24178 Cd. del Carmen Campeche|México|2.00|Pza|sum pers htal aluminio|463.36|926.72|IVA|16|148.27|148.27||

cadena del validaCFD:
||2.2|1540|2012-07-06T00:32:22|286534|2010|ingreso|Pago en una sola Exhibición|926.72|1074.99|Efectivo|Mérida,Yucatán|1.00|MXN|AMD920923I42|ABO Mayoreo en Decoración S.A. de C.V.|35|253|Chuburná de Hidalgo|Mérida|Mérida|Yucatán|México|97200|Calle 35 No.253 Chuburná de Hidalgo C.P.97200 Mérida,Yucatán,México|Mérida|Yucatán|México|Régimen General de Ley Personas Morales|REQA590828IZ3|Rebolledo Quintero Jose Agustin|Calle. 35 No.119 Colonia Tecolutla C.P. 24178 Cd. del Carmen Campeche|México|2.00|Pza|sum pers htal aluminio|463.36|926.72|IVA|16|148.27|148.27||

cadena de ValidaSAT:
||2.2|1540|2012-07-06T00:32:22|286534|2010|ingreso|Pago en una sola Exhibición|926.72|1074.99|Efectivo|Mérida,Yucatán|1.00|MXN|AMD920923I42|ABO Mayoreo en Decoración S.A. de C.V.|35|253|Chuburná de Hidalgo|Mérida|Mérida|Yucatán|México|97200|Calle 35 No.253 Chuburná de Hidalgo C.P.97200 Mérida,Yucatán,México|Mérida|Yucatán|México|Régimen General de Ley Personas Morales|REQA590828IZ3|Rebolledo Quintero Jose Agustin|Calle. 35 No.119 Colonia Tecolutla C.P. 24178 Cd. del Carmen Campeche|México|2.00|Pza|sum pers htal aluminio|463.36|926.72|IVA|16|148.27|148.27||

Como podran observar las cadenas generadas en los 3 casos con iguales..
Entiendo que el sello se crea apartir de la cadena ... asi que si la cadena esta igual en estos tres casos... el problema se encontraria en el proceso de creación del sello.

AYUDA.... :shock:

RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 8:41 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor RickAlanis » Vie Jul 06, 2012 9:26 am

Preguntas:

¿Cómo calculas la cadena original?
Supongamos que cambias un poco cómo generas el sello:
a) openssl dgst -sha1 -sign Llave.key.pem -out sello.sha cadenaoriginal.txt
b) openssl enc -base64 -in sello.sha -out sello.txt

Con eso podrías ver y comentar el tamaño tanto del archivo ".sha" y del ".txt", así como sus contenidos.

Y, por otro lado, sería bueno que compartieras tu archivo XML a ver cómo está.

Saludos!

novasebas666
Mensajes: 23
Registrado: Mar Ene 04, 2011 4:39 pm

Re: Error al validar el sello .. "Sello del Emisor Inválido"

Mensajepor novasebas666 » Sab Jul 07, 2012 6:28 pm

RickAlanis escribió:Preguntas:

¿Cómo calculas la cadena original?
Supongamos que cambias un poco cómo generas el sello:
a) openssl dgst -sha1 -sign Llave.key.pem -out sello.sha cadenaoriginal.txt
b) openssl enc -base64 -in sello.sha -out sello.txt

Con eso podrías ver y comentar el tamaño tanto del archivo ".sha" y del ".txt", así como sus contenidos.

Y, por otro lado, sería bueno que compartieras tu archivo XML a ver cómo está.

Saludos!


Hola, este es el proceso que utilizo para generar la cadena:
xsltproc cadenaoriginal_2_2.xslt BaseXml.xml > CadOri.txt

Dejo en este comentario... El xml , y la descripción del proceso que utilizo para el sellado.

openssl pkcs8 -inform DER -in Llave.key -passin pass:pasword -out llaveprivada.key.pem
openssl dgst -sha1 -sign llaveprivada.key.pem CadOri.txt | openssl enc -base64 -A > sello.txt

Espero una pronta respuesta.. y lamento la demora, estaba fallando la lap...
Adjuntos
AMD920923I42-1540.xml
(3.17 KiB) Descargado 317 veces


Volver a “SELLO DIGITAL INVALIDO”

¿Quién está conectado?

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