Está en la página 1de 45

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


Directorio de
Instalación

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

También podría gustarte