Ver Mensaje Individual
  #346 (permalink)  
Antiguo 04/04/2011, 20:35
prueba230683
 
Fecha de Ingreso: abril-2011
Mensajes: 170
Antigüedad: 13 años, 7 meses
Puntos: 68
Pregunta Respuesta: Factura electroncia sat mexico

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:
  1. Abro MS-DOS
  2. 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-----
    
  3. 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-----
    
  4. 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
    
  5. 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>
    
  6. 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.