Re: Error al validar el sello .. "Sello del Emisor Inválido"
Publicado: 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:
Una vez calculada la Cadena Original, hay que codificarla:
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!
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"
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
La instrucción que usas para transformar el Certificado.cer a texto no es correcta, hasta donde sé.
Espero que te sirva.
¡Saludos!