Cómo usar Firma Digital en SICOP desde GNU/Linux

Para quien utilice el sitio web del SICOP sabrá que se hace uso de un componente de firma. Este componente en la actualidad se ha publicado para Windows y macOS pero también funciona en GNU/Linux y no sería necesario usar Windows para estas tareas.

Para hacerlo funcionar, se pueden seguir los siguientes pasos:

  • Para que el componente inicie, ha de existir una carpeta llamada Documents dentro de nuestra carpeta de usuario (algo así como /home/tunombredeusuario/Documents/). La forma universal para crearla es mediante el comando mkdir ~/Documents (ojo porque es Documents, no Documentos).
  • Dirigirse al sitio web del Componente Firma, www.componentefirmacr.go.cr.
  • Clic en Descargas, clic en el botón Seleccionar a la derecha del Instalador Mac OS X (no importa si es para Mac aunque tengamos GNU/Linux).
  • Pedirá una dirección de correo electrónico por si se quieren recibir notificación de actualizaciones. Finalmente clic en Descargar.
  • Una vez descargado, el fichero Componente_Firma.pkg se puede desempaquetar con doble clic en Nautilus del entorno de escritorio GNOME. Si se utiliza otro entorno y la herramienta de descompresión no reconoce archivos pkg (xar) se puede descomprimir con la herramienta xar mediante xar -xf Componente_Firma.pkg. Se creará una carpeta Componente_Firma.
  • Doble clic en la carpeta y dentro habrá una carpeta llamada Main.pkg.
  • Doble clic en la carpeta y dentro habrá un archivo comprimido llamado Payload.
  • En Nautilus en algunos escritorios se puede desempaquetar con doble clic o se abrirá una herramienta de descompresión. Si no, se puede hacer clic secundario -> Extraer a… y elegir por ejemplo la carpeta actual, donde creará una carpeta Payload (1) o similar. También se puede descomprimir de la forma tradicional con cat Payload | gunzip -dc |cpio -i.
  • Doble clic en la carpeta descomprimida de Payload y aparecerá otra carpeta dentro llamada Componente_Firma.app.
  • Doble clic en la carpeta Componente_Firma.app y aparecerá otra carpeta dentro llamada Contents.
  • Doble clic en la carpeta Contents y aparecerán varias carpetas, entre ellas una llamada Java.
  • Doble clic en la carpeta Java. Aparecerá un archivo llamado MerlinkSignMV.jar.
  • En algunos sistemas se puede lanzar el jar con doble clic (Ubuntu) y se quedará cargado en memoria (no se abre ninguna ventana), en otros se puede lanzar desde la terminal con java -jar MerlinkSignMV.jar. Hay que ha ejecutarlo con java 8, no es compatible con la versión 11.

Tras realizar estos pasos se debería poder cargar el sitio web de SICOP en el navegador Chromium. En Firefox también funciona si se agrega la siguiente línea en el fichero /etc/hosts del sistema, ya que a partir de la versión 66 no permite la conexión desde un sitio web seguro (HTTPS) a local inseguro por websockets:

127.0.0.1   service.componentefirmacr.go.cr

Eso es todo. Ya se podrá iniciar sesión y hacer uso de Firma Digital para las operaciones habituales de la plataforma.

18 comentarios en “Cómo usar Firma Digital en SICOP desde GNU/Linux

  1. Juan Carlos:

    Hola sigo los pasos y me da este error:

    Error: Unable to access jarfile MerlinkSignMV.jar

    1. Francisco de la Peña:

      Hola Juan Carlos, si estás desde ubuntu, creo que los jar hay que marcarlos como ejecutables. Para ello, una vez el jar está fuera de la carpeta comprimida, hay que hacer clic secundario (clic derecho para diestros) y elegir Propiedades, allí en permisos hay que marcar la casilla de fichero ejecutable y aceptar. De esta forma debería poderse ejecutar con doble clic. También como requerimiento hay que tener instalado Java (sudo apt install default-jre).

      1. Juan Carlos:

        Muchísimas gracias! Esta increíble tu blog, varios post me han ayudado y el firmador digital que hicistes me fue de mucha utilidad. El lunes pruebo lo que me indicas ya que fue la máquina del trabajo que formatee para meterme en el mundo de Linux

        1. Francisco de la Peña:

          Gracias Juan Carlos, con mucho gusto. Si hay cualquier otro inconveniente me avisas. Quiero mejorar la documentación tanto para usuarios finales como también para desarrolladores para que las implementaciones que se usen en el país firmen o validen correctamente.

  2. Adriana Díaz:

    Agradecemos mucho la información brindada.
    En Ubuntu 16 funciona pura vida, pero algo pasa en Ubuntu 18, en SICOP reconoce la tarjeta, el usuario, pide clave pero al validar se queda congelado y no hace nada.
    Tienen idea qué puede ser?
    Agradezco de antemano su ayuda.

    1. Francisco de la Peña:

      Gracias Adriana, con Ubuntu 18.04 se han detectado problemas con Firma Digital en general, por lo que el error podría estar relacionado con varias situaciones. Por ejemplo la técnica system wide de instalación que se usaba en una de las guías de este blog no está sirviendo con Firefox (devuelve un error de librería al navegar cualquier sitio SSL) y hay que configurar la librería libASEP11.so individualmente para cada perfil y usuario en su lugar. En otras distribuciones no se ha detectado este problema.

      Pero además, desde la revisión 12 del “instalador” linux de soportefirmadigital.com que subieron hace unas pocas semanas, incorpora una nueva versión de la librería libASEP11.so si se instala con la herramienta pintool desde un paquete deb. Esta librería también parece funcionar correctamente en otras distribuciones (Debian, Fedora, CentOS, openSUSE) pero con Ubuntu 18.04 y posteriores se ha comprobado que no funciona del todo en ninguna aplicación, ni de forma individual, causando que el proceso de la aplicación que la utiliza se quede pegado usando 100% de CPU.

      También habría que verificar la versión de java que se está usando, con java -version, quizás dé problemas con Java 11 y funcione con Java 8, ya que hay un cambio en la forma de acceder a módulos PKCS#11.

      Se dispone de un respaldo de la revisión anterior de la librería (obtenida del instalador de pintool incluido en la rev.11) en la siguiente dirección: https://github.com/luisza/instaladoresFirmaDigitalCR/raw/master/lib/x86_64/libASEP11.so , por si quiere sobrescribir la existente que podría estar en /usr/lib/x64-athena/ o en /usr/lib/x86_64-linux-gnu/. Esta versión no causa el problema de congelarse con cualquier aplicación en Ubuntu, pero no he podido probarla con el SICOP todavía, por lo que si pudiera confirmar si algunas de estas ideas resuelve su problema, se agradecería.

    2. Francisco de la Peña:

      Hola de nuevo, quizás esto ayude en la comunicación:

      Edite el fichero /etc/hosts y agregue la línea:

      127.0.0.1 service.componentefirmacr.go.cr

      1. Adriana Díaz:

        Hola, muchos éxitos en este 2020!!! gracias por tus respuestas.
        Probé lo del hosts y sigue igual, qué mal… gracias por tu ayuda… saludos

        1. Francisco de la Peña:

          Hola Adriana, gracias, igualmente. He probado con Ubuntu 18.04 LTS y me he topado con que Firefox por alguna razón extraña me falla al reconocer el certificado de GoDaddy de sicop.go.cr y eso quizás esté bloqueando la comunicación con websocket de alguna forma (Firefox en Fedora 31 sí me funcoina bien), pero con Chromium (sudo apt install chromium-browser) sí me está funcionando en esa versión de Ubuntu sin problemas. Le he enviado un pantallazo por correo con la muestra. Saludos.

    3. Francisco de la Peña:

      Otra posibilidad en que si se queda congelado con la versión vieja de libASEP11.so es porque hay que usar Java 8, para ello: instalar java 8 con “sudo apt install openjdk-8-jre” y luego si no se quiere eliminar Java 11, ejecutar: “sudo update-alternatives –config java” y elegir el número de opción correspondiente a la línea de Java 8. Entonces relanzar el comando “java -jar MerlinkSignMV.jar” y ya no fallará con excepción, ya que es incompatible con Java 11. Saludos.

  3. Gerardo Solís E:

    Acabo de instalar e ingresar a Sicop por Ubunto 18.04 y funciona perfectamente. Muchas gracias

  4. marcovx:

    me funcionó mas o menos bien cuando la pagina lo reconoce y me pide un “certificado” ya sea tarjeta /o archivo luego un PIN, que debo hacer acá ?

    1. Francisco de la Peña:

      Hola marcovx, en la actualidad creo que se inicia sesión con Firma Digital, por lo tanto se usa tarjeta y por tanto cuando solicita el PIN se ingresa la contraseña numérica de la tarjeta de Firma Digital, que deberá estar conectada al lector. Allí se podrá seleccionar el certificado de la tarjeta y el PIN es necesario para firmar el ingreso.

    2. marcovx:

      Lo hice con ubuntu y me va resultando con chrome ,ingreso bien a sicop y llego a una parte donde me pide un archivo / una tarjeta / pin, donde obtengo eso ?

Responder a Francisco de la Peña

Tu dirección de correo electrónico no será publicada.