Está en la página 1de 45

Seminario de computadores 2

Instalacin y configuracin bsica de servidor Apache Tomcat

Apache Tomcat
Apache Tomcat es un proyecto open source desarrollado por la Apache Software Foundation (ASF). Implementa las especificaciones de Servlets y JavaServer Pages (JSP) de Sun, y provee un ambiente de servidor web http de java puro para la ejecucin de cdigo java.

Apache web server = Tomcat?


No se debe confundir el Apache web server con Apache Tomcat. Apache web server es una implementacion de un servidor Http escrita en C.

Componentes Tomcat
Un servidor Apache Tomcat consta de tres partes principales:
Catalina Coyote Jasper

Apache Tomcat: Catalina


Catalina es el contenedor de Servlet de Tomcat. Implementa las especificaciones de SUN para servlets y JavaServer Pages (JSP). Un servlet es un objeto que recibe una peticin y genera una respuesta basada en esa peticin. Pueden ser empaquetados en archivos WAR (web JAR application). Generalmente pueden escribir html o tambin xml.

Apache Tomcat: Catalina


JavaServlet Page (JSP) Es una abstraccin de alto nivel de un servlet de java. Permite en un lenguaje de etiquetas mezclar fcilmente cdigo html o xml con cdigo java, que es compilado a bytecode para ser ejecutado en el servidor. Tambin pueden encapsularse en archivos WAR para su publicacin en la web.

Componentes Tomcat
Un servidor Apache Tomcat consta de tres partes principales:
Catalina Coyote Jasper

Apache Tomcat: Coyote


Coyote es el conector HTTP que soporta el protocolo HTTP1.1 para el servidor web o para el contenedor de aplicaciones. Coyote escucha las conexiones entrantes en un puerto TCP determinado y redirige las peticiones al motor Tomcat para as procesar las peticiones y mandar una respuesta de vuelta al cliente.

Componentes Tomcat
Un servidor Apache Tomcat consta de tres partes principales:
Catalina Coyote Jasper

Apache Tomcat: Jasper


Jasper es el motor JSP de Tomcat. Desde la versin 5 de Tomcat, es utilizado el motor Jasper 2, una implementacin para la especificacin JSP 2.1 de SUN.
Jasper compila las pginas JSP en codigo java en servlets que puedan ser manejados por Catalina. En tiempo de ejecucin, cualquier cambio en algn archivo JSP Jasper lo detecta y lo recompila.

Manos a la obra!
El primer paso en la instalacin consiste en descargar la versin ms reciente desde http://tomcat.apache.org/ En esta presentacin se utilizar la versin 6.0, ya que est presente tambin como parte del IDE Netbeans. Aunque ya existe la versin 7.0, sta no presenta mayores diferencias a nivel de configuraciones bsicas. (la versin 6.0 es del 22 de julio del 2010)

Manos a la obra!
La versin que se debe descargar depende de la versin del sistema operativo y del JRE (o en su defecto del JDK). Ante diferencias en las arquitecturas del JDK y del SO (caso comn en windows), prima la versin de java: aunque se trabaje con un sistema operativo de 64 bits, si la JVM es de 32 bits se debe descargar la versin de Apache Tomcat de 32 bits.

Cuidado!
Antes de proseguir con la instalacin es necesario asegurarse de que se cuenta con un ambiente de ejecucin java instalado: basta con tener JRE, aunque si est instalado JDK tambin es suficiente para la ejecucin de Tomcat. EL directorio descomprimido no ocupa ms de 10 MB (sin aplicaciones)

Manos a la obra!
Para efectos de esta presentacin, se probar la instalacin tanto en Windows Seven como en Ubuntu Linux, tanto manual como a travs de Netbeans.

Instalacin Manual: pasos comunes


Independiente del sistema operativo elegido, una vez que se descarga el archivo comprimido desde la web y se elige un directorio para su descompresin, los directorios que componen a Apache Tomcat son los siguientes:

Instalacin Manual: pasos comunes


Listado de directorios de Apache Tomcat bin - arranque, cierre, y otros scripts y ejecutables common - clases comunes que pueden utilizar Catalina y las aplicaciones web conf - ficheros XML y los correspondientes DTD (Document Type Definition) para la configuracin de Tomcat logs - logs de Catalina y de las aplicaciones server - clases utilizadas solamente por Catalina shared - clases compartidas por todas las aplicaciones web webapps - directorio que contiene las aplicaciones web work - almacenamiento temporal de ficheros y directorios

Instalacin Manual: Pasos comunes


El siguiente paso es definir un usuario para la pgina de administracin de Tomcat. Para esto es necesario agregarlos en el archivo ~/conf/tomcat-users.xml

Instalacin Manual: Pasos Comunes


La lnea a agregar es del tipo
<role rolename="admin"/> <user username="fabian" password="contrasea" roles="manager,admin"/>

El campo roles, debe especificar el rol deseado. Si se desea completo acceso al panel web, ste debe ser manager

Variables de Entorno
Antes de iniciar Apache Tomcat, es necesario iniciar ciertas variables de entorno. stas son JAVA_HOME, que corresponde a la ruta del jdk de java. TOMCAT_HOME, que corresponde a la ruta donde se ubica tomcat dentro del equipo.

Instalacin manual en Windows 7


Para efectos de abreviacin, la carpeta donde se instale Tomcat la llamaremos $catalina_home. Las variables de entorno en windows, se agregarn directamente en el archivo .bat que inicializa a Tomcat, $catalina_home/bin/startup.bat. La lneas a agregar son las siguientes:
set JAVA_HOME <directorio del JRE o del JDK> set TOMCAT_HOME <directorio del servidor tomcat>

Instalacin manual en Windows 7


Otra manera de agregar las variables de entorno es directamente al S.O.:

Instalacin manual en Windows 7


Una vez que las variables de entorno estn configuradas, se inicializa Tomcat, ejecutando en una consola $catalina_home/bin/startup

Instalacin manual en Windows 7


Si todo marcha bien, una pgina web debera aparecer en la direccin http://localhost:8080 (puerto por defecto para Tomcat). Se puede acceder al Tomcat Manager (con el usuario creado), as como a los ejemplos disponibles.

Para apagar al servidor Tomcat, se debe ejecutar en consola $catalina_home/bin/shutdown.bat

Instalacin manual en Linux (ubuntu)

Copiar la carpeta de Tomcat a la ruta donde se desee instalar.

Copiamos las variables de entorno en el archivo ~/.bashrc si se desea que sean visibles para el usuario especifico, o en ~/.profile si se desea que sean visibles para todos los usuarios.
JAVA_HOME=/usr/lib/jvm/java-6-sun PATH=$PATH:/usr/lib/jvm/java-6-sun/bin export JAVA_HOME export PATH

Instalacin manual en Linux (ubuntu)

Probamos la instalacin arrancando el servidor:

Sudo Catalina_HOME/bin/startup.sh

Si todo sali bien, accedemos a http://localhost.com:8080 y debera estar corriendo el servidor.

Otras Configuraciones
Aumentar la memoria de ejecucin de Tomcat: Para aumentar la memoria disponible para tomcat, es necesario agregar esta lnea al archivo de inicializacin $catalina_home\bin\catalina.bat, o en su defecto $catalina_home/bin/catalina.sh:
set CATALINA_OPTS= "-Xms512m -Xmx512m" //windows export CATALINA_OPTS= "-Xms512m -Xmx512m" //linux

con esto se entregan 512 mb de memoria para tomcat. Xmx: maximun heap size Xms: initial heap size

Otras Configuraciones
Cambiar puerto: Es posible cambiar el puerto por defecto de Tomcat a otro con distinta numeracin. ste puede ser configurado como http normal o como servidor seguro (conexin mediante https). Ambas configuraciones se realizan modificando el archivo de configuracin $catalina_home/conf/server.xml

Modificar nmero de puerto


Para ello es necesario cambiar el campo port de la etiqueta mostrada en la imagen de abajo, parte del archivo server.xml. Se puede incluso dejar al puerto 80, haciendo que el panel Tomcat sea lo primero que aparece en el web browser al digitar nuestra IP.

SSL en Tomcat
SSL (Secure Sockets Layer) es el protocolo ms popular cuando se trata de ofrecer privacidad y confiabilidad para comunicaciones clienteservidor sobre Internet. Negocia las claves y los algoritmos criptogrficos entre ambos lados de una comunicacin, y establece un tnel encriptado a travs del cual otros protocolos (como HTTP) pueden ser transportados.

SSL en Tomcat
Opcionalmente, puede tambin autentificar ambos lados a travs del uso de certificados. SSL se encuentra en la capa de Aplicacin del modelo TCP/IP, lo que significa que puede implementarse en casi cualquier sistema operativo que soporte TCP/IP, sin necesidad de modificar el kernel del sistema o la pila TCP/IP.

Activar conexin segura


Para configurar un puerto para conexin segura, se debe descomentar la siguiente lnea dentro del archivo server.xml:

Activar conexin segura: Keytool


Dentro del directorio bin de Tomcat, se debe ejecutar la siguiente lnea en una consola, para crear la llave que nos permita realizar la conexin segura:
keytool -genkey -alias tomcat -keyalg RSA

Luego se pedirn datos como nombre de usuario, empresa, y una contrasea. Supongamos que la contrasea ser 123456. El archivo creado quedar guardado en la raz de la carpeta del usuario actual (el usuario del sistema operativo en Windows sera del estilo C:\Users\usuario\.keystore)

Activar conexin segura: Keytool


Ahora se procede a modificar el campo protocol con el siguiente parmetro:
protocol = "org.apache.coyote.http11.Http11Protocol" // de esa manera se obliga a tomcat a utilizar JSSE

Tambin se parmetros:

debe

agregar

los

siguientes

keystorePass="123456" // la contrasea creada anteriormente keystoreFile="<ruta del usuario>\.keystore" // la ruta al archivo del keystore

Activar conexin segura: Keytool


Si los cambios fueron realizados con xito, el archivo de configuracin, la lnea en particular debera lucir as:

Activar conexin segura


As la navegacin segura queda activada, pudiendo acceder desde el puerto con/sin seguridad (en este caso el puerto seguro es 8443):

Habilitar Tomcat para SSL con OpenSSL


Se debe instalar OpenSSL
$ Sudo aptget instal OpenSSL

Para mejorar el orden, se debera crear una carpeta en $catalina_home y posicionarnos en aquel directorio (en nuestro caso creamos keycontainer)

Habilitar Tomcat para SSL con OpenSSL


Primero se debe crear una clave para poder firmar el certificado, especificando el tipo de encriptado, el nombre del archivo y el nivel de encriptado
$ openssl genrsa -out miclave.pem 2048

En este caso es RSA, mi clave.pem y 2048 bits.

Habilitar Tomcat para SSL con OpenSSL


Luego, se debe crear un certificado firmado con la clave.
openssl req -new -x509 -key miclave.pem -out micert.pem -days 365

Se pedirn algunos datos que se deben llenar. Finalmente se debe convertir a PKCS12 para que se ajuste a Tomcat
openssl pkcs12 -export -in micert.pem -inkey miclave.pem -out micert.p12 -name tomcat

Configurar el conector para SSL con OpenSSL


SE debe editar $catalina_home/conf/server.xml conector SSL
maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreType="PKCS12" keystoreFile="/usr/local/tomcat/keyconteiner/micert.p12" keystorePass="elo.utfsm"/>

el

archivo configurar el

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

Puesta en marcha desde NetBeans


Mtodo alternativo para la puesta en marcha es a travs del IDE NetBeans. Es necesario descargar la versin que incluye Apache Tomcat desde www.netbeans.org, y al momento de instalar asegurarse que est dentro de las opciones a instalar. Para esta disertacin se utiliz NetBeans 6.9.1, tanto en Windows como en Linux.

Puesta en marcha desde NetBeans


Lo primero es ir hacia la pestaa prestaciones dentro de la ventana principal, debera aparecer bajo el submen Servidores el servidor Apache Tomcat:

Puesta en marcha desde NetBeans


Como se aprecia, en el men que aparece al hacer clic con el botn derecho enlista las opciones bsicas de funcionamiento de Tomcat, as como un acceso directo a la edicin de server.xml. As, si presionamos start, el servidor Tomcat comenzar a correr en el puerto 8080. Para detenerlo basta con presionar el botn Stop.

Configuracin en NetBeans
En el mismo men contextual, accediendo a properties podremos configurar los parmetros bsicos de Tomcat.
Crear usuario manager Directorio de Instalacin Platform->vm Options (se puede cambiar la cantidad de memoria utilizada por Tomcat) Configurar puerto

Un sencillo ejemplo de Servlet


El proyecto test2 fue creado en el ide NetBeans para su posterior carga en el servidor Tomcat. Consta de una pgina en jsp y de un servlet.

También podría gustarte