# Manual de instalación de Murachí - Portal de Firma Electrónica y Verificación Murachí es un servicio web para la firma y verificación de documentos firmados electrónicamente que ofrece las herramientas necesarias para incorporar, de manera sencilla, la funcionalidad de firma electrónica en sistemas como correo electrónico o sitios web. ## Autores: Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL), Mérida - Venezuela. Dirección de Desarrollo: -Ing. Pedro Buitrago -Ing. Angelo Osorio -Ing. Laura Colina -Ing. Pablo Sulbarán -Ing. Argenis Osorio ## Instalación: ### Requerimientos del sistema: Servidor Web. Php5 o superior. Java 1.6 o 1.7 compatible runtime. ### Instalación del entorno: * Entorno: Desarrollo * Usaremos $ para describir los comandos que se ejecutaran con un usuario regular. * Usaremos # para describir los comandos que se ejecutaran con un super usuario. 1. Instalar el entorno: $ sudo aptitude install apache2 $ sudo aptitude install php7.0 $ sudo aptitude install default-jre $ sudo aptitude install openjdk-8-jre NOTAS: -Al instalar default-jre en Debian 9 Stretch, se instalará openjdk-8-jre, que es la versión de openjdk por defecto para esa distribución. -Se ha comprobado la compatibilidad de PortableSigner solo hasta OpenJDK versión 11, desde en esa en adelante dependerá del usuario comprobar. -Las pruebas fueron realizadas con OpenJDK 8. 2. Descargar el proyecto: Clonar el proyecto en el directorio del servidor local (www, htdocs, html, etc...): $ export GIT_SSL_NO_VERIFY=True $ git clone https://tibisay.cenditel.gob.ve/murachi/scm/git/portal_2019.git Entrar al proyecto: $ cd portal_2019 Cambiar a la rama master: $ git checkout master Crear el directorio donde se guardarán los archivos gestionados: $ mkdir tmp Otorgarle al servidor la propiedad del directorio: # chown -R www-data:www-data tmp 3. Correr en el navegador host/portal_2019/ y si todo se ejecutó correctamente debemos ver el Portal de Firma Electrónica y Verificación. ### Errores y preguntas frecuentes -Error 1. El sistema se carga pero no muestra las imágenes ni los estilos -Solución: Entrar en el archivo portal_2019/php/url.php y modificar la ruta de la línea 12. De: if ($_SERVER['REQUEST_URI'] == "/index.php" || $_SERVER['REQUEST_URI'] == "/") { a: if ($_SERVER['REQUEST_URI'] == "/portal_2019/index.php" || $_SERVER['REQUEST_URI'] == "/portal_2019/") { donde **/portal_2019/** será el nombre del directorio donde está alojado el sistema. ----- -Error 2. El sistema arroja: **Error al intentar subir el archivo.../tmp/xxxxxxxxxx.pdf** -Solución: Crear el directorio tmp y darle permisos 777 al directorio, o en su defecto otorgarle la propiedad del directorio al usuario del servidor como se muestra en el paso 2 de la instalalación. ----- -Error 3. El sistema arroja el error "clave inválida" a pesar que escribir la clave adecuada del p12. -Solución: Entrar en el archivo portal_2019/php/run_script.php y agregar el flag --illegal-access=deny la ruta de la línea 59. De: $callPortable = "java -jar ../PortableSigner.jar -n"; a: $callPortable = "java -jar --illegal-access=deny ../PortableSigner.jar -n"; ### Notas: - La documentación de portablesigner se encuentra en: http://portablesigner.sourceforge.net/ - PortableSigner puede instalarse de manera global y ser convocado de manera diferente al script de php - Para encriptar la frase de paso en el cliente se utiliza [jsencrypt](https://github.com/travist/jsencrypt) ### El portal fue desarrollado en máquinas con las siguientes especificaciones: - Debian 9.9 stretch - Apache/2.4.25 (Debian) - PHP 7.3.8-1+0~20190807.43+debian9~1.gbp7731bf - OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1~deb9u1-b10) - Google Chrome Versión 75.0.3770.142 (Build oficial) (64 bits)