Cómo instalar Firma Digital de Costa Rica en Fedora Linux, CentOS Stream y Red Hat Enterprise Linux

Esta guía documenta cómo instalar el controlador de la tarjeta de Firma Digital de Costa Rica y la jerarquía de certificados del MICITT (CA raíz nacional) y del Banco Central (CA SINPE) en los sistemas operativos Fedora, CentOS Stream y Red Hat Enterprise Linux.

Las instrucciones están diseñadas para las distribuciones mencionadas previamente. Si se desea utilizar en otras distribuciones, existen las guías sobre cómo instalar Firma Digital de Costa Rica en Fedora, Red Hat Enterprise Linux y CentOS, cómo instalar Firma Digital de Costa Rica en openSUSE y SUSE Linux Enterprise y cómo instalar Firma Digital de Costa Rica en Manjaro (Arch Linux).

Las instrucciones están diseñadas para las distribuciones mencionadas previamente. Si se desea utilizar en otras distribuciones, existen las guías sobre cómo instalar Firma Digital de Costa Rica en openSUSE y SUSE Linux Enterprise Para Debian y Ubuntu está la guía de cómo instalar Firma Digital de Costa Rica en Debian y Ubuntu. Para Manjaro y Arch Linux en general, está la guía cómo instalar Firma Digital de Costa Rica en Manjaro (Arch Linux).

Esta guía de instalación tiene los siguientes propósitos:

  • Configurar de la forma más sencilla y adecuada el sistema para que funcione con la mayor cantidad de programas.
  • Lograr que funcione para todos los usuarios del sistema, incluyendo los nuevos usuarios creados tras las instalación.
  • Aislar la librería de Firma Digital en una “caja de arena” (sandbox) para que funcione con múltiples usuarios del sistema simultáneamente (soluciona un defecto en la librería al crear ficheros temporales).

Instalación de las dependencias

  • Instalar el soporte CCID de PC/SC para que reconozca el lector de tarjetas e IcedTea-Web para poder cargar algunos lanzadores que usan Java Web Start como por ejemplo el del sitio web de CrearEmpresa.go.cr o el Módulo Firma Digital de la CCSS.
    sudo dnf -y install pcsc-lite icedtea-web

Descarga del “instalador”

  • Descargar el “instalador” en el desplegable llamado “Usuarios Linux” en la página de descarga de instaladores del sitio web de Soporte Firma Digital de Costa Rica, introduciendo el número de serie de la tarjeta y aceptando las condiciones.
  • Descomprimir el archivo zip descargado con unzip, en el momento de escribir esta documentación se llama sfd_ClientesLinux_RPM64_Rev24.zip. Se creará una carpeta llamada Firma Digital. Se asume que el archivo zip se ha descargado en la carpeta Descargas:
    cd $HOME/Descargas/
    
    unzip sfd_ClientesLinux_RPM64_Rev24.zip
    

Instalación de los certificados

Es necesario agregar a la lista de confianza la jerarquía de certificados del SINPE y del MICITT. En teoría solamente sería necesario instalar los certificados raíz del MICITT pero en la práctica hay algunas aplicaciones que necesitan los certificados intermedios del SINPE para completar la cadena a la hora de validar. Para ello, un conjunto de comandos:

  • Copiar los certificados:
    sudo cp -p $HOME/Descargas/sfd_ClientesLinux_RPM64_Rev24/Firma\ Digital/Certificados/* /usr/share/pki/ca-trust-source/anchors/
    
  • Regenerar los archivos de certificados para todas las aplicaciones:
    sudo update-ca-trust
    

Instalación del módulo PKCS#11

Aunque hay un módulo en el directorio Librerías, no es la versión más reciente y tiene varios defectos de enlazado. La versión distribuida en el paquete PinTool es más reciente y funciona correctamente en todos los programas probados. En el siguiente proceso se extrae y se instala conservando la fecha original de la librería.

  • Instalar el módulo PKCS#11 privativo en /usr/lib64/:
    cd $HOME/Descargas/sfd_ClientesLinux_RPM64_Rev24/Firma\ Digital/PinTool/IDProtect\ PINTool\ 7.24.02/RPM/
    
    rpm2cpio idprotectclient-7.24.02-0.x86_64.rpm | cpio -dim ./usr/lib/x64-athena/libASEP11.so
    
    sudo cp -p usr/lib/x64-athena/libASEP11.so /usr/lib64/
    
    sudo mkdir -p /usr/lib/x64-athena/
    
    sudo mkdir -p /Firma_Digital/LIBRERIAS/
    
    sudo ln -s /usr/lib64/libASEP11.so /usr/lib/x64-athena/
    
    sudo ln -s /usr/lib64/libASEP11.so /usr/lib/
    
    sudo ln -s /usr/lib64/libASEP11.so /usr/local/lib/
    
    sudo ln -s /usr/lib64/libASEP11.so /Firma_Digital/LIBRERIAS/
    
    sudo ln -s /usr/share/pki/ca-trust-source/anchors /Firma_Digital/CERTIFICADOS
    
  • Permitir temporalmente al usuario local cargar aplicaciones gráficas con sudo (para gedit):
    xhost si:localuser:root
    
  • Crear el fichero /etc/Athena/IDPClientDB.xml y abrirlo para edición:
    sudo mkdir /etc/Athena/
    
    sudo gedit /etc/Athena/IDPClientDB.xml
    
  • En la ventana del editor de textos gedit, pegar el siguiente texto, guardar y cerrar el editor:
    <?xml version="1.0" encoding="utf-8" ?>
    <IDProtect>
     <TokenLibs>
      <IDProtect>
       <Cards>
        <IDProtectXF>
         <ATR type='hexBinary'>3BDC00FF8091FE1FC38073C821106600000000000000</ATR>
         <ATRMask type='hexBinary'>FFFF00FFF0FFFFFFFFFFFFFFFFF0FF00000000000000</ATRMask>
        </IDProtectXF>
       </Cards>
      </IDProtect>
      <ChipDoc>
       <Cards>
        <ChipDocEMV>
         <ATR type='hexBinary'>3BEA00008131FE450031C173C840000090007A</ATR>
         <ATRMask type='hexBinary'>FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF</ATRMask>
        </ChipDocEMV>
       </Cards>
      </ChipDoc>
     </TokenLibs>
    </IDProtect>
    
  • Crear un fichero llamado /usr/share/p11-kit/modules/firma-digital.module y abrirlo para edición:
    sudo gedit /usr/share/p11-kit/modules/firma-digital.module
    
  • En la ventana del editor de textos gedit, pegar el siguiente texto, guardar y cerrar el editor:
    remote: |bwrap --unshare-all --dir /tmp --proc /proc --dev /dev --ro-bind /etc/Athena /etc/Athena --ro-bind /usr /usr --ro-bind /var/run/pcscd /var/run/pcscd --ro-bind /run/pcscd /run/pcscd --symlink /usr/lib64 /lib64 p11-kit remote /usr/lib64/libASEP11.so
    

Eso es todo. Es necesario reiniciar Firefox y cualquier otra aplicación que use certificados para que se apliquen los cambios.

Quizás resulte interesante utilizar la herramienta Firmador, software libre para firmar documentos.

5 comentarios en “Cómo instalar Firma Digital de Costa Rica en Fedora Linux, CentOS Stream y Red Hat Enterprise Linux

  1. Andres Blanco:

    Mae purisima vida, pura suerte toparme con este articulo en el momento justo. Las instrucciones “oficiales” nunca me sirvieron en ubuntu y esto me funko perfecto.

    Tuanis!

  2. Harold:

    A mi me funciona “open the box” en Ubuntu Mate, lo que me hace falta es un app de escritorio par afirmar pdf digitalmente con firma visible (como Xolido, o Adobe Reader DC), el mejor que he encontrado en C.R. es el de la empresa Alkaid que, aunque se realizo con plataformas de soft libre, es comercial. El Gobierno debería tener un firmador multiplataforma que cumpla con la neutralidad tecnológica. Es solo mi opinión. Gracias.

    1. Jonathan Vargas:

      Hola Harold, efectivamente, LibreFirma es una excelente opción, pues goza de mantenimiento continuo, actualizaciones, compatibilidad y facilidad de uso, tanto para entornos de usuario individual como empresarial. El valor comercial del producto justifica estas posibilidades y el servicio que usted recibe.

  3. RandallZR:

    Muchas gracias, recién instalado en mi Fedora 39 KDE Plasma. (y)

Deja un comentario

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