Cómo usar Firma Digital con la herramienta gratuita de emisión de comprobantes de Hacienda en GNU/Linux

El Ministerio de Hacienda de Costa Rica ofrece a los contribuyentes una herramienta gratuita para emitir comprobantes electrónicos desde su portal de Administración Tributaria Virtual (ATV). Es una opción útil para quien emita facturas de forma casual y no desee utilizar servicios de terceros. El firmador en su modalidad para Firma Digital solo lo ofrecen para Windows, sin embargo el componente interno es multiplataforma. Como en el caso de otras implementaciones existentes en el mercado desarrolladas en Java, funciona en GNU/Linux si se extrae del instalador.

Para poder firmar digitalmente con la herramienta que ofrecen, existen dos opciones para firmar, usando dispositivo de Firma Digital de Persona Física o usando un firmador usando certificados emitidos por el Ministerio de Hacienda. Por el respaldo jurídico y seguridad que tienen las firmas digitales de la jerarquía nacional, esta guía se refiere a las primeras. Para quien utilice firma con la llave criptográfica de hacienda ya no es necesario Signum One KS si solo va a usar el facturador gratuito del ATV, haciendo que el fichero .p12 lo custodien ellos cuando genera o regenera una y marca la casilla de “Soy usuario del Facturador Gratuito de Hacienda” como se indica en https://www.hacienda.go.cr/docs/GuiaParaRevocarYGenerarLlaveCriptografica.pdf.

Descarga y extracción del instalador

  • Obtener una de las versiones de Signum One archivadas en The Internet Archive para https://hacienda-signumone-dist.s3.amazonaws.com/SignumOne-KS-3.1.5-x86_64.msi (versión “azul” KS para uso con fichero de llave criptográfica) y desde https://hacienda-signumone-dist.s3.amazonaws.com/SignumOne-3.1.5-x86_64.msi (versión “roja” para uso con dispositivo hardware de firma digital como las tarjetas de persona física).
  • Instalar el paquete msitools. Está empaquetado en la mayoría distribuciones GNU/Linux.
  • Ejecutar:
    cd $HOME/Descargas
    
    msiextract SignumOne-3.1.5-x86_64.msi
    
  • Dentro de la carpeta Descargas, En la ruta PFiles/SignumOne/app aparecerá un fichero llamado signumone-app-jfx.jar que se puede ejecutar si se instala OpenJDK 8 y OpenJFX.

    Por ejemplo, en Fedora los paquetes a instalar se llaman java-1.8.0-openjdk-openjfx y openjfx8 y quizás resulte necesario ejecutar el comando sudo alternatives --config java y seleccionar la versión 8. En otras distribuciones podría no estar disponible OpenJDK 8 y OpenJFX 8, por lo que deberían buscar los mecanismos adecuados para poderlo instalar, ya que la aplicación no funciona con Java 11 o con Java 17. En las distribuciones basadas en Debian (Ubuntu, Mint, etc.) el comando alternatives existe de forma similar bajo el nombre update-alternatives.

    Una vez se dispone de Java 8 con Java FX, se procede a ejecutar:

    cd $HOME/Descargas/PFiles/SignumOne/app
    
    java -jar signumone-app-jfx.jar
    
  • Si todo fue bien, se abrirá la ventana del firmador. Ya solo queda dirigirse al sitio web ATV de Hacienda, crear la factura y firmar.

Es posible que este método también sirva para usuarios de macOS si instalan Java 8 desde el sitio java.com y el paquete msitools usando la herramienta disponible en el sitio brew.sh.

Si ATV no puede conectar con SignumOne aun cuando la aplicación está ejecutándose, podría tratarse de que el certificado venció (no el suyo de firmar comprobantes sino el del dominio app.signum.one de uso interno de la herramienta). Para resolverlo, puede acceder a https://app.signum.one:8123/ para agregar una excepción al navegador y reintentar validar y firmar de nuevo.

15 comentarios en “Cómo usar Firma Digital con la herramienta gratuita de emisión de comprobantes de Hacienda en GNU/Linux

  1. Denis:

    Hola, Francisco! Gracias por esta guía, me ha sido de mucha ayuda.
    Solo quería comentarte que en mi caso que trabajo con Ubuntu 20.04 LTS para seleccionar la versión de java utilice este comando:
    sudo update-alternatives –config java

    En lugar de “sudo alternatives –config java”, que imagino es el comando que funciona para Fedora.

    1. Francisco de la Peña:

      Hola Denis, con gusto. Es correcto, en Debian y Ubuntu el comando equivlaente es update-alternatives para elegir la versión de Java. ¡Saludos!

  2. Gustavo Quirós Calderón:

    No me sirve el firmador, me podrían indicar si tienen algún link donde lo puedo descargar aun no puedo facturar

  3. Juan MIguel:

    Buen dia. Cuando ejecuta el firmador SignumOne me da el siguiente error: No se encontro la libreria PKCS11. Como solucionarlo?

    1. Francisco de la Peña:

      Buenas tardes, Juan Miguel:
      ¿Se quiere firmar con tarjeta de firma digital o con certificado de Hacienda? (.p12)?
      Si se quiere usar el certificado de Hacienda hay dos opciones, o regenerar las llaves indicando que se es usuario del facturador gratuito del ATV y no tener que usar SignumOne porque la llave queda custodiada por el ATV, o bien usar el SignumOne KS (es azul en lugar de rojo) si se prefiere seguir usando un fichero .p12. Si se dispone de Firma Digital deberá instalarse los controladores de Soporte Firma Digital para que funcione.

  4. Juan MIguel:

    Estoy usando el KS, azul. pero simpre me dice que no se puede obtener respuesta del firmador

    1. Francisco de la Peña:

      En ese caso asumo que utilizaba un certificado p12. Si lo prefiere, puede regenerarlo como se indica en esta guía y no necesitará usar SignumOne con el facturador del ATV:
      https://www.hacienda.go.cr/docs/GuiaParaRevocarYGenerarLlaveCriptografica.pdf
      Marcando la casilla “Soy usuario del Facturador Gratuito de Hacienda” le permitirá que no haya que utilizar SignumOne. Tenga en cuenta que esto es siempre y cuando solo vaya a usar el facturador de ATV y no otros. Si en el futuro planea utilizar un facturador de terceros deberá generarla de nuevo sin marcar esa casilla.

  5. Roberto Saravia:

    Estimado Francisco,
    ¡En realidad estoy infinitamente agradecido! Como usuario novato de GNU-Linux, SignumOne me estaba dando un dolor de cabeza terrible y fue gracias a su tutorial que logré resolver el problema.
    ¡De nuevo, muchísimas gracias!

    1. Francisco de la Peña:

      Hola Roberto, con mucho gusto, qué dicha que resultó útil la guía. También los comentarios incluyen información complementaria que contribuyen a resolver algunos problemas. Saludos y éxitos.

  6. Dayana Fuentes:

    Hola! Muchas gracias por la guía. Tengo hace algunos días problemas para firmar con firma digital en la plataforma de ATV, ya que, a pesar de que tengo ya los programas instalados, me insiste una leyenda la plataforma que: ”No se logró conectar al firmador. Favor de verificar que este ejecutando el firmado SignumOne.”
    Esto estando abiertos ambos programas.
    Sabes qué debe ser el problema?

    1. Francisco de la Peña:

      Hola Dayana, con gusto.
      La aplicación de SignumOne tiene que estar abierta (puede estar minimizada) para que el sitio web de hacienda lo detecte.
      ¿Está intentando usar la tarjeta de firma digital para firmar o utiliza un fichero de llave criptográfica?
      Saludos.

  7. Gaby Johanna Camareno Aguilar:

    Excelente guía, muchas gracias por el aporte de ambos…

Responder a Juan MIguel

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *