miércoles, 3 de junio de 2015

Certificados Fiscales PFX AFIP de prueba para el modo homologación.

Los certificados fiscales PFX o CRT de prueba para conectar a los servidores de homologación (prueba, modo=0) de AFIP ya no se deben pedir por mail, sino que pueden ser tramitados directamente con una clave fiscal (puede ser la clave fiscal del programador o desarrollador, o de un CUIT emisor, o de cualquiera en general).

La mecánica de obtención no ha cambiado (mediante openssl generar la solicitud CSR y con ella obtener el certificado de prueba CRT para un o más web service y convertirlo a PFX para utilizar como 3er argumento del método iniciar). Solo que todo se realiza sin intervención manual por parte de AFIP.

La nueva guia paso a paso figura en:
https://sites.google.com/site/facturaelectronicax/Home/version-full/como-usar/certificado-digital/certificados-resumen/certificado-fiscal-afip-de-prueba

11 comentarios:

  1. Utilizo WSAFIPFE en modo homologacion en una aplicacion web desarrollada con Visual Studio y C# .
    Cuando la ejecuto en modo local funciona correctamente.
    Cuando la ejecuto en el servidor recibo un error.
    fallo acceso ***Error al obtener certificado: ObtieneCertificadoDesdeArchivo(E:\web\myorione\apchn\Tareas\orionewwwe.pfx): An internal error occurred. at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate.Import(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2.Import(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) at WSAFIPFE.Certificado.ObtieneCertificadoDesdeArchivo(String argArchivo, String strArchivoError, String strPassword, Int32 iTipoPassWord)
    Con quien puedo consultar o recibir ayuda sobre este tema
    Gracias

    ResponderEliminar
    Respuestas
    1. como marca el error, la ruta al certificado no es correcta o faltan permisos de acceso, enviar la consulta desde el soporte de la página para más información.

      Eliminar
  2. Marco, a mi tembien me pasa lo mismo cuando hago un deploy en el server de un hosting que tengo.

    El error que me da es:

    Error al intentar obtener factura electrónica (AFIP). Mensaje: '***Error al obtener certificado: ObtieneCertificadoDesdeArchivo(\\hmfsw\web\DTC005\v0051277.ferozo.com\public_html\CertificateAFIP\certificadoPark.pfx): An internal error occurred. at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate.Import(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2.Import(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) at WSAFIPFE.Certificado.ObtieneCertificadoDesdeArchivo(String argArchivo, String strArchivoError, String strPassword, Int32 iTipoPassWord) - Error en el método ObtenerTicketAcceso'

    ResponderEliminar
    Respuestas
    1. Como indica el comentario anterior, la ruta del archivo no es correcta

      Eliminar
    2. Buenos Días, disuclpa la molestia, como pudiste solventar este inconveniente? en todos los lugares donde realizo la compilación del proyecto funciona correctamente pero en el servidor no, los permisos los tiene TODOS

      Eliminar
    3. Consultar desde la página para poder dar una respuesta más apropiada, como indica el error está mal la ruta o el archivo PFX usado como 3er argumento del método iniciar, moverlo a otra ruta.
      https://sites.google.com

      Eliminar
  3. Sergio en un servidor web la ruta que me marca es la virtual. No tengo control sobre ello.

    ResponderEliminar
  4. Puede ser cualquier ruta siempre que se tenga permisos sobre ella para que la interfaz puede acceder al archivo en modo lectura. El mensaje de error indica que no hay acceso al archivo

    ResponderEliminar
  5. Buenas me salta este error, pero no sé si es la ruta, lo probamos en dos Pc y funciona bien, pero no en la del cliente.

    (Error):***Error FIRMANDO el LoginTicketRequest : argArchivo=c:\\gestion\\fe\\SANDINHNOS.pfx excepcion=Error interno.
    en System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
    en System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
    en System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags)
    en System.Security.Cryptography.X509Certificates.X509Certificate.Import(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags)
    en System.Security.Cryptography.X509Certificates.X509Certificate2.Import(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags)
    en FacturaElectronica.Utils.CertificadosX509Lib.ObtieneCertificadoDesdeArchivo(String argArchivo, String key) EXCEPTION OCCURRED:System.Exception: ***Error FIRMANDO el LoginTicketRequest : argArchivo=c:\\gestion\\fe\\SANDINHNOS.pfx excepcion=Error interno.
    en System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
    en System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
    en System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags)
    en System.Security.Cryptography.X509Certificates.X509Certificate.Import(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags)
    en System.Security.Cryptography.X509Certificates.X509Certificate2.Import(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags)
    en FacturaElectronica.Utils.CertificadosX509Lib.ObtieneCertificadoDesdeArchivo(String argArchivo, String key)
    en FacturaElectronica.Repository.LoginTicket.ObtenerLoginTicketResponse(String argServicio, String argUrlWsaa, String argRutaCertX509Firmante, String key)
    en FacturaElectronica.Repository.Authentication..ctor(String cuit, String url, String pathCertificado, Logger logger, String key)
    en FacturaElectronica.Program.Main(String[] args)
    [2016/11/30 13:43:29.653](Info):Fin procesamiento

    ResponderEliminar
  6. Consultar desde la página para poder dar una respuesta más apropiada, como indica el error está mal la ruta o el archivo PFX usado como 3er argumento del método iniciar, moverlo a otra ruta.
    https://sites.google.com/site/facturaelectronicax/Home/soporte

    ResponderEliminar
  7. Problemas al obtener TICKET DE ACCESO AFIP (local V1) 2 ***Error al obtener certificado: ObtieneCertificadoDesdeArchivo(marinsa.pfx): La contraseña de red especificada no es válida.
    en System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
    en System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
    en System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags)
    en System.Security.Cryptography.X509Certificates.X509Certificate.Import(Byte[] rawData)
    en System.Security.Cryptography.X509Certificates.X509Certificate2.Import(Byte[] rawData)
    en WSAFIPFE.Certificado.ObtieneCertificadoDesdeArchivo(String argArchivo, String strArchivoError, String strPassword, Int32 iTipoPassWord)

    ResponderEliminar