Página 1 de 5

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

Publicado: Mar Jul 03, 2012 12:23 am
por novasebas666
Esto va dirigido al todo mundo y en especial al master DADO..
He realizado los cambios para la facturacion 2.2, pero tengo un error en el validaCFD, me aparece la leyenda, "Sello del Emisor Invalido", y al validarlo con el SAT me aparece "El sello del comprobante es Inválido". (ADJUNTO EL ARCHIVO XML QUE ESTOY VERIFICANDO)

Esto es todo lo que me arroja el validador del SAT..

Archivo XML: AMD920923I42-1540.xml
Ruta: C:\Facturas\AMD920923I42-1540.xml

Estructura: Estructura del CFD correcta

CFD codificado en: UTF-8.

El comprobante incluye un certificado codificado

El sello del comprobante es Inválido

Folio: Registrado

Folio: 1540
Serie:
Año: 2010
Número de Aprobación: 286534
RFC emisor: AMD920923I42

Vigencia del CSD: A la fecha de emisión del CFD, el certificado se encontraba: Activo

Detalle del análisis del XML

Resultado de la Digestión SHA1: 2fa78874c76aaa963ecba0db1a5df4dcc15edb7a

No. de Serie del CSD: 00001000000102060061

Cadena Original: ||2.2|1540|2012-07-03T00:29:47|286534|2010|ingreso|Pago en una sola Exhibición|926.72|1074.99|NO ESPECIFICADO|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||

IMPORTANTE: Los resultados anteriores se presentan a efecto de que valide la estructura,
cadena original y sello de su CFD. Para que una factura electrónica sea válida para
efectos fiscales, deberá reunir los requisitos que establecen las disposiciones fiscales
vigentes.

He comparado el resultado de la cadena original que genera mi proceso con el validaCFD y el validador del SAT... en ambos casos la comparación era identica.. (Adjunto un txt con la comparacion que hice)

He llegado a pensar que el problema se encuentra en el procesoBAT que me genera la cadena...abajo defino las lineas que uso.
openssl pkcs8 -inform DER -in archivo.key -passin pass:valorPass -out certificado.pem
openssl dgst -sha1 -sign certificado.pem cadenaoriginal.txt | openssl enc -base64 -A > sello.txt
openssl enc -base64 -in certificado.cer -out certificado.txt

POR FAVOR SI ALGUIEN TIENE ALGUNA OBSERVACION IMPORTANTE SERA DE GRAN AYUDA..... YA ME URGE....LLEVO UN BUEN RATO TRATANDO DE ENCONTRAR LA SOLUCION PARA PODER REALIZAR LAS VALIDACIONES..... PERO NO HE PODIDO POR CUESTION DE QUE TENGO UN ERROR EN EL SELLO....
AYUDA.....................AYUDA........................

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

Publicado: Mar Jul 03, 2012 7:25 am
por RickAlanis
Me parece que tienes un error de concepto.

Usas esta instrucción para sacar la llave privada y la llamas certificado:

Código: Seleccionar todo

openssl pkcs8 -inform DER -in archivo.key -passin pass:valorPass -out certificado.pem
cuando en realidad es para obtener la llave privada, que es con lo que encriptas (eso es correcto):

Código: Seleccionar todo

openssl dgst -sha1 -sign certificado.pem cadenaoriginal.txt | openssl enc -base64 -A > sello.txt
Te recomiendo que no le llames "certificado.pem" porque esta es la llave privada.

El certificado es la llave pública y, para incluirlo en el XML, debes pasarlo a formato PEM, con este comando:

Código: Seleccionar todo

OpenSSL x509 -inform DER -outform PEM -in certificado.cer -pubkey > Certificado.pem
(la opción "-pubkey" es precisamente para decirle que quieres obtener la llave pública).

Luego sólo le quitas todos los line feed y las líneas "BEGIN CERTIFICATE" y "END CERTIFICATE", dado que ya está en base64 (PEM es lo mismo que base64).

Espero que eso te sirva.
¡Saludos!

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

Publicado: Mar Jul 03, 2012 9:17 am
por novasebas666
RickAlanis escribió:Me parece que tienes un error de concepto.

Usas esta instrucción para sacar la llave privada y la llamas certificado:

Código: Seleccionar todo

openssl pkcs8 -inform DER -in archivo.key -passin pass:valorPass -out certificado.pem
cuando en realidad es para obtener la llave privada, que es con lo que encriptas (eso es correcto):

Código: Seleccionar todo

openssl dgst -sha1 -sign certificado.pem cadenaoriginal.txt | openssl enc -base64 -A > sello.txt
Te recomiendo que no le llames "certificado.pem" porque esta es la llave privada.

El certificado es la llave pública y, para incluirlo en el XML, debes pasarlo a formato PEM, con este comando:

Código: Seleccionar todo

OpenSSL x509 -inform DER -outform PEM -in certificado.cer -pubkey > Certificado.pem
(la opción "-pubkey" es precisamente para decirle que quieres obtener la llave pública).

Luego sólo le quitas todos los line feed y las líneas "BEGIN CERTIFICATE" y "END CERTIFICATE", dado que ya está en base64 (PEM es lo mismo que base64).

Espero que eso te sirva.
¡Saludos!
Lo voya checar detalladamente.... y muchas gracias por el consejo...
Aun asi, me gustaria saber si hay algun otro consejo ó proceso que me haga falta..... de antemano .. MUCHISIMAS GRACIAS A TODOS LOS QUE RESPONDAN.

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

Publicado: Mar Jul 03, 2012 10:49 am
por jt_darkness
Saludos a todos!! yo tengo el mismo problema, alguien ya lo ha podido solucionar??

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

Publicado: Mar Jul 03, 2012 11:30 am
por RickAlanis
Háblanos más del asunto.
Comparte tu XML, cómo calculas la Cadena Original, etc. etc.

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

Publicado: Mar Jul 03, 2012 11:41 am
por novasebas666
RickAlanis escribió:Me parece que tienes un error de concepto.

Usas esta instrucción para sacar la llave privada y la llamas certificado:

Código: Seleccionar todo

openssl pkcs8 -inform DER -in archivo.key -passin pass:valorPass -out certificado.pem
cuando en realidad es para obtener la llave privada, que es con lo que encriptas (eso es correcto):

Código: Seleccionar todo

openssl dgst -sha1 -sign certificado.pem cadenaoriginal.txt | openssl enc -base64 -A > sello.txt
Te recomiendo que no le llames "certificado.pem" porque esta es la llave privada.

El certificado es la llave pública y, para incluirlo en el XML, debes pasarlo a formato PEM, con este comando:

Código: Seleccionar todo

OpenSSL x509 -inform DER -outform PEM -in certificado.cer -pubkey > Certificado.pem
(la opción "-pubkey" es precisamente para decirle que quieres obtener la llave pública).

Luego sólo le quitas todos los line feed y las líneas "BEGIN CERTIFICATE" y "END CERTIFICATE", dado que ya está en base64 (PEM es lo mismo que base64).

Espero que eso te sirva.
¡Saludos!
Disculpa, que otros procesos realizas en el BAT????? Podrias compartirnos tu proceso???

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

Publicado: Mar Jul 03, 2012 12:10 pm
por jt_darkness
Investigar , investigar y mas investigar, ademas de aceptar mi ignoncia en el tema, esa fue la solucion del problema. Resulta que cuando estaba generando la cadena original yo puse los nuevos campos en un orden diferente al requerido, ahora si que como dicen en otro tema, "el orden de los factores no afecta el producto" AQUI NO APLICA.

Lo que hice fue comparar mi cadena original con la que me regresaba el ValidaCFD y ordené los campos como este los mostraba y santo remedio!!.

Espero que esta solución le sirva a alguien mas.

Un saludo y muchas gracias pos su apoyo!!!

Bueno una pregunta mas, donde encuentro el costo de las librerias para la generacion del CFDI ya que estoy por comenzar un nuevo proyecto al cual le tengo que agregar la facturacion electronica.

Gracias de nuevo.

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

Publicado: Mar Jul 03, 2012 4:25 pm
por RickAlanis
Lee mi comentario en el otro tema que abriste sobre lo mismo.

Saludos

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

Publicado: Mié Jul 04, 2012 8:48 am
por novasebas666
RickAlanis escribió:Me parece que tienes un error de concepto.

Usas esta instrucción para sacar la llave privada y la llamas certificado:

Código: Seleccionar todo

openssl pkcs8 -inform DER -in archivo.key -passin pass:valorPass -out certificado.pem
cuando en realidad es para obtener la llave privada, que es con lo que encriptas (eso es correcto):

Código: Seleccionar todo

openssl dgst -sha1 -sign certificado.pem cadenaoriginal.txt | openssl enc -base64 -A > sello.txt
Te recomiendo que no le llames "certificado.pem" porque esta es la llave privada.

El certificado es la llave pública y, para incluirlo en el XML, debes pasarlo a formato PEM, con este comando:

Código: Seleccionar todo

OpenSSL x509 -inform DER -outform PEM -in certificado.cer -pubkey > Certificado.pem
(la opción "-pubkey" es precisamente para decirle que quieres obtener la llave pública).

Luego sólo le quitas todos los line feed y las líneas "BEGIN CERTIFICATE" y "END CERTIFICATE", dado que ya está en base64 (PEM es lo mismo que base64).

Espero que eso te sirva.
¡Saludos!
Ya hice el cambio tal como sugeriste... pero eso no resolvio el problema.. siempre me aparece la leyenda "Sello del comprobante invalido.(En validaSAT)" y Sello del emisor invalido en ValidaCFD.

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

Publicado: Mié Jul 04, 2012 8:53 am
por novasebas666
Algún ejemplo del proceso de sellado con el openSSL????
desde el archivo.pem, el sello y el certificado..