Manual de Implementación Murachi
Manual de Implementación Murachi
Manual de Implementación Murachi
Este Manual se distribuye bajo la Licencia de Contenidos Versión 1.0, elaborada por la
Fundación Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL),
ente adscrito al Ministerio del Poder Popular para Ciencia y Tecnología (MPPCYT).
Todas los documentos, imágenes, audios, vídeos y código fuente contenidos en este
manual están bajo la Licencia de Contenidos Versión 1.0, desarrollada por la Fundación
CENDITEL. Cada vez que copie y distribuya este contenido debe acompañarlo de una copia
de la licencia. Para más información sobre los términos y condiciones de la licencia visite la
siguiente dirección electrónica: http://derechoinformatico.cenditel.gob.ve/licencia-de-
contenido/
Autor: Ing. Laura Colina
Índice
1. Presentación...........................................................................................................................................4
2. Despliegue del servicio web Murachí....................................................................................................6
2.1 Requerimientos................................................................................................................................6
2.2 Instalación de Apache Tomcat 7/8...................................................................................................6
2.3 Implementación del servicio Murachí.............................................................................................9
2.3.1 Cargar el código fuente............................................................................................................9
2.3.2 Crear y configurar un certificado SSL...................................................................................12
3. Despliegue del portal web de Murachí.................................................................................................19
3.1 Requerimientos..............................................................................................................................19
3.2 Implementación del portal web con Apache.................................................................................19
3.2 Implementación del portal web con Apache Tomcat....................................................................22
1. Presentación
¿Cómo se usa?
4
posibilidad de probar el servicio a través de una interfaz sencilla. Allí se describen los pasos
para ilustrar de manera general el proceso.
Requerimientos previos
Antes de utilizar el sistema, el usuario debe poseer un certificado digital emitido por un
Proveedor de Servicios de Certificación (PSC) acreditado ante la Superintendencia de
Servicios de Certificación Electrónica (SUSCERTE) o una tarjeta para firma electrónica, esta
ultima es de manera opcional, puesto que el servicio Murachí y su Portal web están
diseñados para:
• Firmar electrónicamente documentos con formato PDF y/o BDOC mediante un token
de seguridad (tarjeta o usb) los cuales almacenan las contraseñas y certificados
digitales.
• Firmar electrónicamente documentos con formato PDF mediante certificados digitales
con formato X.509 (PKCS12 extensión .p12).
5
2. Despliegue del servicio web Murachí
El servicio web Murachí es un sistema API REST que incorpora funcionalidades como:
firmar y verificar documentos electrónicamente mediante certificados digitales emitidos por
Proveedor de Servicios de Certificación.
Nota:
Usaremos $ para describir los comandos que se ejecutarán con usuario regular.
Usaremos # para describir los comandos que se ejecutarán con usuario administrador.
2.1 Requerimientos
6
◦ En la carpeta webapps: se encuentran alojadas las aplicaciones web.
◦ En la carpeta work: se encuentra el almacenamiento temporal de ficheros y
directorios.
• El servicio de Tomcat7 se ejecuta mediante systemd y/o init.d, sus configuración y
guiones de arranque se encuentran en /etc/init.d/tomcat7 y /etc/default/tomcat
4. Editar los roles del servicio tomcat, los roles que se pueden encontrar son:
• manager-gui: acceso a la interfaz HTML
• manager-status: acceso a la pagina Estado del servidor
7
• manager-script
• manager-jmx
Para nuestro caso solo vamos a utilizar o definir los roles manager-gui y manager-status
5. Agregar dentro del archivo tomcat-user.xml los permisos de usuarios para el Tomcat
# cd /etc/tomcat7/
# vim tomcat-user.xml
8
Figura 3. Interfaz de Manager WebApp
Hasta este instante se tiene corriendo el servidor Apache Tomcat 7/8 (que es un contenedor
de aplicaciones web) y se configuro los usuarios para acceder a las diferentes secciones.
Ahora procederemos a mostrar los pasos para correr una aplicación web en el contenedor
Apache tomcat 7/8 para la misma debemos de disponer un archivo de aplicación web (.war)
Nota: WAR es un archivo JAR utilizado para distribuir una colección de JavaServer? Pages,
servlets, clases Java, archivos XML, bibliotecas de tags y páginas web estáticas (HTML y
archivos relacionados) que juntos constituyen una aplicación web. Referencia web:
https://es.wikipedia.org/wiki/WAR_(archivo)
1. Para este manual vamos a correr el servidor Murachí que se dispone del archivo .war
en el siguiente enlace: https://tibisay.cenditel.gob.ve/murachi/downloads
9
2. Para cargar un archivo .war en Tomcat se puede realizar de dos maneras:
2.1. Desde un terminal:
2.1.1. Subir el archivo Murachi.war al servidor.
2.1.2. Mover el archivo al directorio /var/lib/tomcat7/webapps/
# mv Murachi.war /var/lib/tomcat7/webapps/
10
2.2.4. Una ves cargado y desplegado en archivo Murachi.war se puede observar
en la sección Aplicaciones que se visualizan las aplicaciones que están
contenida en el servidor Tomcat que ya aparece la aplicación Murachi (ver
figura 6).
11
2.3.2 Crear y configurar un certificado SSL
# openssl req -x509 -sha256 -newkey rsa:2048 -keyout tomcat.key -out tomcat.crt -days 1024
-nodes
12
Country Name (2 letter code) [AU]:VE
State or Province Name (full name) [Some-State]:Merida
Locality Name (eg, city) []:Merida
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Fundacion Cenditel
Organizational Unit Name (eg, section) []:Seguridad
Common Name (e.g. server FQDN or YOUR name) []:Murachi
Email Address []:[email protected]
13
This connector uses the BIO implementation that requires the JSSE
style configuration. When using the APR/native implementation, the
OpenSSL style configuration is required as described in the APR/native
documentation -->
14
Figura 8. Confirmar excepción de seguridad
7. Para cambiar los puertos de los protocolos HTTP y HTTPS que el servicio Tomcat trae
por defecto, se debe ejecutar los siguientes pasos:
7.1. Activar la opción de AUTHBIND en el archivo /etc/default/tomcat7
# vim /etc/default/tomcat7
AUTHBIND=yes
15
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
-->
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
.
.
.
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
This connector uses the NIO implementation. The default
SSLImplementation will depend on the presence of the APR/native
library and the useOpenSSL attribute of the
AprLifecycleListener.
Either JSSE or OpenSSL style configuration may be used regardless of
the SSLImplementation selected. JSSE style configuration is used below.
-->
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/var/lib/tomcat7/keystore.jks" keystorePass="123456" />
16
7.5. Para cambiar el nombre de dominio del servicio, se debe editar el archivo
server.xml, agregando la linea de Alias:
# vim /etc/tomcat7/server.xml
Nota: En caso de tener un servidor proxy que proporcionará el servicio https con los
certificados SSL, se debe obviar todos los pasos anteriores y solo agregar las siguientes
lineas en server.xml:
# vim server.xml
<!-- Mark HTTP as HTTPS forward from SSL termination at nginx proxy -->
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"
internalProxies="X\.X\.X\.X"/>
17
Posteriormente agregar las siguientes lineas en web.xml (@@ -391,18 +391,6 @@)
# vim web.xml
18
3. Despliegue del portal web de Murachí
El portal web que se ofrece en este manual consume de los servicios Murachí y
PortableSigner, este ultimo es un programa de firma (con certificados X.509) para archivos
PDF. El portal brinda una interfaz gráfica sencilla y rápida al usuario final donde podrá:
1. Firmar electrónicamente archivos PDF y BDOC con dispositivo criptográfico.
2. Firmar electrónicamente archivos PDF con certificados digitales .p12.
3. Verificar firmas electrónicas.
Nota:
Usaremos $ para describir los comandos que se ejecutarán con usuario regular.
Usaremos # para describir los comandos que se ejecutarán con usuario administrador.
3.1 Requerimientos
1. Instalar Apache:
# apt-get install apache2 libapache2-mod-php7.0
19
2. Descargar el código fuente del portal web:
# cd /var/www
# git clone -b portal https://tibisay.cenditel.gob.ve/murachi/scm/git/portal_2019.git
ServerAdmin webmaster@localhost
DocumentRoot /var/www/portal_2019
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/portal_2019>
Options Indexes FollowSymLinks MultiViews
20
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
21
# systemctl restart apache2
Nota: Se recomienda que el portal web para el servicio Murachí se publique mediante el
protocolo HTTPS, por tal motivo si se tiene un Proxy se debe configurar el puerto 443 y la
redirección del puerto 80 al 443.
2. Crear un proyecto nuevo de Java con IDE Eclipse para la carpeta portal_2019
3. Ejecutar el proceso de cargar y desplegar en el servidor Tomcat, para la misma
debemos realizar los pasos de la sección anterior: 2.3 Implementación del servicio
Murachí (.war) > 2.3.1 Cargar archivo .war
22
4. Ejecutar el portal haciendo clic en el enlace o escribiendo
https://murachi.cenditel.gob.ve/portal_2019 desplegara el portal que realiza el
consumo del servicio de Murachí
23