tomcat

45
Seminario de computadores 2 Instalación y configuración básica de servidor Apache Tomcat

Upload: omega1986

Post on 02-Jul-2015

1.279 views

Category:

Documents


6 download

TRANSCRIPT

Seminario de computadores 2

Instalación y configuración básica 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 ejecución de código 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 petición y genera una respuesta basada en esa petición. Pueden ser empaquetados en archivos WAR (web JAR application). Generalmente pueden escribir html o también xml.

Apache Tomcat: Catalina

• JavaServlet Page (JSP) Es una abstracción de alto nivel de un servlet de java. Permite en un lenguaje de etiquetas mezclar fácilmente código html o xml con código java, que es compilado a bytecode para ser ejecutado en el servidor. También pueden encapsularse en archivos WAR para su publicación 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 versión 5 de Tomcat, es utilizado el motor Jasper 2, una implementación para la especificación JSP 2.1 de SUN.

• Jasper compila las páginas JSP en codigo java en servlets que puedan ser manejados por Catalina. En tiempo de ejecución, cualquier cambio en algún archivo JSP Jasper lo detecta y lo recompila.

Manos a la obra!

• El primer paso en la instalación consiste en descargar la versión más reciente desde http://tomcat.apache.org/

• En esta presentación se utilizará la versión 6.0, ya que está presente también como parte del IDE Netbeans. Aunque ya existe la versión 7.0, ésta no presenta mayores diferencias a nivel de configuraciones básicas. (la versión 6.0 es del 22 de julio del 2010)

Manos a la obra!

• La versión que se debe descargar depende de la versión del sistema operativo y del JRE (o en su defecto del JDK).

• Ante diferencias en las arquitecturas del JDK y del SO (caso común en windows), prima la versión de java: aunque se trabaje con un sistema operativo de 64 bits, si la JVM es de 32 bits se debe descargar la versión de Apache Tomcat de 32 bits.

Cuidado!

• Antes de proseguir con la instalación es necesario asegurarse de que se cuenta con un ambiente de ejecución java instalado: basta con tener JRE, aunque si está instalado JDK también es suficiente para la ejecución de Tomcat.

• EL directorio descomprimido no ocupa más de 10 MB (sin aplicaciones)

Manos a la obra!

• Para efectos de esta presentación, se probará la instalación tanto en Windows Seven como en Ubuntu Linux, tanto manual como a través de Netbeans.

Instalación 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 descompresión, los directorios que componen a Apache Tomcat son los siguientes:

Instalación 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 configuración 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

Instalación Manual: Pasos comunes

• El siguiente paso es definir un usuario para la página de administración de Tomcat. Para esto es necesario agregarlos en el archivo ~/conf/tomcat-users.xml

Instalación Manual: Pasos Comunes

• La línea a agregar es del tipo

<role rolename="admin"/>

<user username="fabian"

password="contraseña" 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.

Instalación manual en Windows 7

• Para efectos de abreviación, la carpeta donde se instale Tomcat la llamaremos $catalina_home.

• Las variables de entorno en windows, se agregarán directamente en el archivo .bat que inicializa a Tomcat, $catalina_home/bin/startup.bat.

• La líneas a agregar son las siguientes:

set JAVA_HOME <directorio del JRE o del JDK>

set TOMCAT_HOME <directorio del servidor tomcat>

Instalación manual en Windows 7

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

Instalación manual en Windows 7

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

Instalación manual en Windows 7 • Si todo marcha bien, una página web debería aparecer en la dirección

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

Instalación 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

Instalación manual en Linux (ubuntu)

• Probamos la instalación arrancando el servidor:

Sudo Catalina_HOME/bin/startup.sh

• Si todo salió bien, accedemos a http://localhost.com:8080 y debería estar corriendo el servidor.

Otras Configuraciones

• Aumentar la memoria de ejecución de Tomcat: Para aumentar la memoria disponible para tomcat, es necesario agregar esta línea al archivo de inicialización $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 numeración. Éste puede ser configurado como http normal o como servidor seguro (conexión mediante https). Ambas configuraciones se realizan modificando el archivo de configuración $catalina_home/conf/server.xml

Modificar número 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 más popular cuando se trata de ofrecer privacidad y confiabilidad para comunicaciones cliente-servidor sobre Internet.

• Negocia las claves y los algoritmos criptográficos entre ambos lados de una comunicación, y establece un túnel encriptado a través del cual otros protocolos (como HTTP) pueden ser transportados.

SSL en Tomcat

• Opcionalmente, puede también autentificar ambos lados a través del uso de certificados.

• SSL se encuentra en la capa de Aplicación 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 conexión segura

• Para configurar un puerto para conexión segura, se debe descomentar la siguiente línea dentro del archivo server.xml:

Activar conexión segura: Keytool

• Dentro del directorio bin de Tomcat, se debe ejecutar la siguiente línea en una consola, para crear la llave que nos permita realizar la conexión segura:

keytool -genkey -alias tomcat -keyalg RSA

• Luego se pedirán datos como nombre de usuario, empresa, y una contraseña. Supongamos que la contraseña será 123456. El archivo creado quedará guardado en la raíz de la carpeta del usuario actual (el usuario del sistema operativo en Windows sería del estilo C:\Users\usuario\.keystore)

Activar conexión segura: Keytool

• Ahora se procede a modificar el campo protocol con el siguiente parámetro:

protocol = "org.apache.coyote.http11.Http11Protocol"

// de esa manera se obliga a tomcat a utilizar JSSE

• También se debe agregar los siguientes parámetros:

keystorePass="123456"

// la contraseña creada anteriormente

keystoreFile="<ruta del usuario>\.keystore"

// la ruta al archivo del keystore

Activar conexión segura: Keytool

• Si los cambios fueron realizados con éxito, el archivo de configuración, la línea en particular debería lucir así:

Activar conexión segura

• Así la navegación 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 debería 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 pedirán 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 el archivo $catalina_home/conf/server.xml y configurar el conector SSL

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

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreType="PKCS12"

keystoreFile="/usr/local/tomcat/keyconteiner/micert.p12"

keystorePass="elo.utfsm"/>

Puesta en marcha desde NetBeans

• Método alternativo para la puesta en marcha es a través del IDE NetBeans. Es necesario descargar la versión que incluye Apache Tomcat desde www.netbeans.org, y al momento de instalar asegurarse que esté dentro de las opciones a instalar.

• Para esta disertación se utilizó NetBeans 6.9.1, tanto en Windows como en Linux.

Puesta en marcha desde NetBeans

• Lo primero es ir hacia la pestaña prestaciones dentro de la ventana principal, debería 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 botón derecho enlista las opciones básicas de funcionamiento de Tomcat, así como un acceso directo a la edición de server.xml.

• Así, si presionamos start, el servidor Tomcat comenzará a correr en el puerto 8080.

• Para detenerlo basta con presionar el botón Stop.

Configuración en NetBeans

• En el mismo menú contextual, accediendo a properties podremos configurar los parámetros básicos de Tomcat.

Crear usuario manager

Configurar puerto

Platform->vm Options (se puede cambiar la cantidad de memoria utilizada por Tomcat)

Directorio de Instalación

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 página en jsp y de un servlet.