Hola, espero que alguien me pueda ayudar porque de plano no entiendo porque no me funciona lo de la firma electrónica. Primero me gustaría verificar que esto funcione con MD5 y después probaré con SHA1.
Estas pruebas se están realizando en:
PC con Windows 7 32 bits en Español
OpenSSL versión 0.9.8g.
También tengo los siguientes datos y archivos:
- Archivo "aaa010101aaa_csd_01.key" obtenido desde la página de SAT
- Archivo "aaa010101aaa_csd_01.cer" obtenido desde la página de SAT
- Contraseña "a0123456789" obtenida desde la página de SAT
- Archivo "cadena_original.txt" con el siguiente contenido
Código:
||2.0|A|1|2009-08-16T16:30:00|1|2009|ingreso|Una sola exhibición|350.00|5.25|397.25|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20.00|200|1|pieza|Charola metálica|150.00|150|IVA|15.00|52.50||
Pasos que realizo para hacer pruebas:
- Abro MS-DOS
- Ejecuto el comando "openssl x509 -inform DER -outform PEM -in aaa010101aaa_csd_01.cer -pubkey > aaa010101aaa_csd_01.cer.pem"
Me genera el archivo "aaa010101aaa_csd_01.cer.pem" con el siguiente contenido:
Código:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD0ltQNthUNUfzq0t1GpIyapjz
On1W5fGM5G/pQyMluCzP9YlVAgBjGgzwYp9Z0J9gadg3y2ZrYDwvv8b72goyRnhn
v3bkjVRKlus6LDc00K7Jl23UYzNGlXn5+i0HxxuWonc2GYKFGsN4rFWKVy3Fnpv8
Z2D7dNqsVyT5HapEqwIDAQAB
-----END PUBLIC KEY-----
-----BEGIN CERTIFICATE-----
MIIE/TCCA+WgAwIBAgIUMzAwMDEwMDAwMDAxMDAwMDA4MDAwDQYJKoZIhvcNAQEF
BQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZp
Y2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1p
bmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcG
CSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkM
HUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDEL
MAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcM
CUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkC
DCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMDA3MzAx
NjU4NDBaFw0xMjA3MjkxNjU4NDBaMIGWMRIwEAYDVQQDDAlNYXRyaXogU0ExEjAQ
BgNVBCkMCU1hdHJpeiBTQTESMBAGA1UECgwJTWF0cml6IFNBMSUwIwYDVQQtExxB
QUEwMTAxMDFBQUEgLyBBQUFBMDEwMTAxQUFBMR4wHAYDVQQFExUgLyBBQUFBMDEw
MTAxSERGUlhYMDExETAPBgNVBAsMCFVuaWRhZCAxMIGfMA0GCSqGSIb3DQEBAQUA
A4GNADCBiQKBgQDD0ltQNthUNUfzq0t1GpIyapjzOn1W5fGM5G/pQyMluCzP9YlV
AgBjGgzwYp9Z0J9gadg3y2ZrYDwvv8b72goyRnhnv3bkjVRKlus6LDc00K7Jl23U
YzNGlXn5+i0HxxuWonc2GYKFGsN4rFWKVy3Fnpv8Z2D7dNqsVyT5HapEqwIDAQAB
o4HqMIHnMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMB0GA1UdDgQWBBSYodSw
Rczzj5H7mcO3+mAyXz+y0DAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vcGtpLnNh
dC5nb2IubXgvc2F0LmNybDAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0
dHA6Ly9vY3NwLnNhdC5nb2IubXgvMB8GA1UdIwQYMBaAFOtZfQQimlONnnEaoFiW
KfU54KDFMBAGA1UdIAQJMAcwBQYDKgMEMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0G
CSqGSIb3DQEBBQUAA4IBAQArHQEorApwqumSn5EqDOAjbezi8fLco1cYES/PD+LQ
RM1Vb1g7VLE3hR4S5NNBv0bMwwWAr0WfL9lRRj0PMKLorO8y4TJjRU8MiYXfzSuK
YL5Z16kW8zlVHw7CtmjhfjoIMwjQo3prifWxFv7VpfIBstKKShU0qB6KzUUNwg2O
la4t4gg2JJcBmyIAIInHSGoeinR2V1tQ10aRqJdXkGin4WZ75yMbQH4L0NfotqY6
bpF2CqIY3aogQyJGhUJji4gYnS2DvHcyoICwgawshjSaX8Y0Xlwnuh6EusqhqlhT
gwPNAPrKIXCmOWtqjlDhho/lhkHJMzuTn8AoVapbBUnj
-----END CERTIFICATE-----
- Ejecuto el comando "openssl pkcs8 -inform DER aaa010101aaa_csd_01.key -pass in pass:a0123456789 -out aaa010101aaa_csd_01_key.pem"
Me genera el archivo "aaa010101aaa_csd_01_key.pem" con el siguiente contenido:
Código:
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDD0ltQNthUNUfzq0t1GpIyapjzOn1W5fGM5G/pQyMluCzP9YlV
AgBjGgzwYp9Z0J9gadg3y2ZrYDwvv8b72goyRnhnv3bkjVRKlus6LDc00K7Jl23U
YzNGlXn5+i0HxxuWonc2GYKFGsN4rFWKVy3Fnpv8Z2D7dNqsVyT5HapEqwIDAQAB
AoGAeYXvEx2mLMQQDgDsyBSgS9dpafCPXkE/IR+W79yxUDQ24yvOeUnPsbC1/OxH
VfapIa0t+JoqylIjp8JNG3jZv/kXhCIg/aI6rZcfRZdvAgAOMMdRmpY/UOiOMWre
xjWWJ9EQPz+zIZwh5MCos8yCPnJukMtGKKdlUiFYWopI+gECQQDuaQF/eGegQ1uX
Z3FzR563b67FUvmIlEcX2D2O4kjBpOVUZndHNntWhZsIEcK730MBy9AEBVyECewK
PJZyzZcBAkEA0kT1B0FnxoLLWQqC7oxDmonvC9J+tGokkmpQWzPHAbW6hMHUlOLo
LYzfu/XaHgDpuSz7qgG0pYjQuYIr05VnqwJBAMNKmMOGKbyJ8JkRT0mTPVwdzBgv
Y+CRNbs+kw5cJiUZohGE7egTpOy2/MubYNzsgcMS5Q6mJaazSfsIrmTULAECQQC/
wpOT4lo5995rfeKamuCsd07CgV18O7DOtpZCFp5POOS5Xev5PFZx9B+20yfwZPTC
I/v/tz6AGJ4CEGzXsVGxAkEAtonciHAJQfAd+R6JpyyAtYxH0U38Mn83q6nK7d7a
AhSMRTX70s61F2owSDkg/aWR3jmI5CbhUcYPdsbMpH830A==
-----END RSA PRIVATE KEY-----
- Ejecuto el comando "openssl dgst -MD5 cadena_original.txt > md5.txt"
Me genera el archivo "md5.txt" con el siguiente contenido:
Código:
MD5(cadena_original.txt)= 4cd8ed248d7a02314c50778a37d1522d
la cual cambio a
Código:
4cd8ed248d7a02314c50778a37d1522d
- Ejecuto el comando "openssl dgst -sign aaa010101aaa_csd_01.key.pem md5.txt | openssl enc -base64 -A > sello.txt"
Me genera el archivo "sello.txt" con el siguiente contenido:
Código:
IXXS1kSII5BJ7rhoGtHQx9wVOx1Yu+VZvVTPlqiMM0eoDaBbjMvOzjihz/MKg9LNbRMnvrMXlb+LEQQO2nfwiLVFPC0sF+WkdPpPrdtXmqd1fFbPsL72lZggWr+KkM7iy845vs5VPyYmxKVOtgcL0ag5/r8/lxEeb6YvD6vaV6E=
Tomo ese sello y el certificado que obtuve en el segundo paso y lo coloco en el siguiente XML:
Código:
<?xml version="1.0" encoding="UTF-8"?>
<Comprobante xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0" serie="A" folio="1" fecha="2009-08-16T16:30:00" noAprobacion="1" anoAprobacion="2009" formaDePago="Una sola exhibición" subTotal="350.00" descuento="5.25" total="397.25" tipoDeComprobante="ingreso" noCertificado="10001200000000022517" certificado="MIIE/TCCA+WgAwIBAgIUMzAwMDEwMDAwMDAxMDAwMDA4MDAwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMDA3MzAxNjU4NDBaFw0xMjA3MjkxNjU4NDBaMIGWMRIwEAYDVQQDDAlNYXRyaXogU0ExEjAQBgNVBCkMCU1hdHJpeiBTQTESMBAGA1UECgwJTWF0cml6IFNBMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBBQUFBMDEwMTAxQUFBMR4wHAYDVQQFExUgLyBBQUFBMDEwMTAxSERGUlhYMDExETAPBgNVBAsMCFVuaWRhZCAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD0ltQNthUNUfzq0t1GpIyapjzOn1W5fGM5G/pQyMluCzP9YlVAgBjGgzwYp9Z0J9gadg3y2ZrYDwvv8b72goyRnhnv3bkjVRKlus6LDc00K7Jl23UYzNGlXn5+i0HxxuWonc2GYKFGsN4rFWKVy3Fnpv8Z2D7dNqsVyT5HapEqwIDAQABo4HqMIHnMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMB0GA1UdDgQWBBSYodSwRczzj5H7mcO3+mAyXz+y0DAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vcGtpLnNhdC5nb2IubXgvc2F0LmNybDAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNhdC5nb2IubXgvMB8GA1UdIwQYMBaAFOtZfQQimlONnnEaoFiWKfU54KDFMBAGA1UdIAQJMAcwBQYDKgMEMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4IBAQArHQEorApwqumSn5EqDOAjbezi8fLco1cYES/PD+LQRM1Vb1g7VLE3hR4S5NNBv0bMwwWAr0WfL9lRRj0PMKLorO8y4TJjRU8MiYXfzSuKYL5Z16kW8zlVHw7CtmjhfjoIMwjQo3prifWxFv7VpfIBstKKShU0qB6KzUUNwg2Ola4t4gg2JJcBmyIAIInHSGoeinR2V1tQ10aRqJdXkGin4WZ75yMbQH4L0NfotqY6bpF2CqIY3aogQyJGhUJji4gYnS2DvHcyoICwgawshjSaX8Y0Xlwnuh6EusqhqlhTgwPNAPrKIXCmOWtqjlDhho/lhkHJMzuTn8AoVapbBUnj" sello="IXXS1kSII5BJ7rhoGtHQx9wVOx1Yu+VZvVTPlqiMM0eoDaBbjMvOzjihz/MKg9LNbRMnvrMXlb+LEQQO2nfwiLVFPC0sF+WkdPpPrdtXmqd1fFbPsL72lZggWr+KkM7iy845vs5VPyYmxKVOtgcL0ag5/r8/lxEeb6YvD6vaV6E=">
<Emisor nombre="Industrias del Sur Poniente, S.A. de C.V." rfc="ISP900909Q88">
<DomicilioFiscal calle="Alvaro Obregón" codigoPostal="06700" colonia="Col. Roma Norte" estado="Distrito Federal" localidad="México" municipio="Cuauhtémoc" noExterior="37" noInterior="3" pais="México"></DomicilioFiscal>
<ExpedidoEn calle="Pino Suarez" codigoPostal="95460" colonia="Centro" estado="Nuevo Léon" localidad="Monterrey" municipio="Monterrey" noExterior="23" pais="México"></ExpedidoEn>
</Emisor>
<Receptor nombre="Rosa María Calderón Uriegas" rfc="CAUR390312S87">
<Domicilio calle="Topochico" codigoPostal="95465" colonia="Jardines del Valle" estado="Nuevo León" localidad="Monterrey" municipio="Monterrey" noExterior="52" pais="México"></Domicilio>
</Receptor>
<Conceptos>
<Concepto cantidad="10" descripcion="Vasos decorados" importe="200" unidad="Caja" valorUnitario="20.00"></Concepto>
<Concepto cantidad="1" descripcion="Charola metálica" importe="150" unidad="pieza" valorUnitario="150.00"></Concepto>
</Conceptos>
<Impuestos>
<Traslados>
<Traslado impuesto="IVA" tasa="15.00" importe="52.50"></Traslado>
</Traslados>
</Impuestos>
</Comprobante>
- Entro a la página del validador del SAT https://www.consulta.sat.gob.mx/SICOFI_WEB/ModuloECFD_Plus/ValidadorComprobantes/Validador.asp y agrego el XML que generé y me marca lo siguiente:
Código:
Resumen del análisis del XML
Archivo XML :CFD.xml
Ruta :C:\CFD.xml
Estructura : Estructura del CFD correcta
CFD codificado en UTF-8
El comprobante incluye un certificado codificado
El sello del comprobante es Inválido
Detalle del análisis del XML
Resultado de la Digestión MD5 :4cd8ed248d7a02314c50778a37d1522d
Tipo de Certificado:CSD
No. de Serie del CSD :10001200000000022517
Cadena Original :...
¿Qué paso estoy haciendo mal?
Gracias de antemano por su ayuda.