Webmaster > Tutoriales y Manuales

Java JDK + Servidor Tomcat SSL

(1/1)

Escain:
Tomcat es un servidor que proporciona acceso a servelet en java, (seguro que habéis visto alguna vez los .jsp o incluso un .war).
En este tutorial trataremos la instalación sobre un servidor CENTOS.
Para acabar de dar seguridad al sistema, explicaremos la instalación con SSL, muy adecuada si pretendemos correr programas propios de gestión por ejemplo.

Como se requiere del JDK de java, se empezará por instalar este.

Objetivos:

* Instalar el JDK de Java (oracle)
* Instalar el servidor tomcat
* Proteger con SSL la comunicación
Consideraciones iniciales:
El servidor tomcat es independiente del httpd, para (re)iniciarlo, se debe ejecutar:

--- Código: ---$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh

--- Fin del código ---

Según el programa que queramos ejecutar, pueden surgir problemas de tamaño de memoria o de tamaño de heap, se trata este tema al final del tutorial.

Supondremos que tiene un nivel de conocimiento mínimo de Linux y sus comandos: mkdir, cd, ls, wget, chown, chmod, rm, etc..

Para empezar crearemos la carpeta necesaria para java y tomcat:

--- Código: ---mkdir /usr/java

--- Fin del código ---

A continuación instalamos los paquetes necesarios:

--- Código: ---yum -y update
yum -y install httpd httpd-devel php php-common php-devel

--- Fin del código ---

Instalación del JDK java:
Descargamos el JDK de la página oficial por ejemplo jdk-6u25-linux-x64.bin en nuestro caso, no podemos usar wget porque requiere aceptar unas licencias.
http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html
nos descargamos jdk-6u25-linux-x64.bin y lo podemos subir a nuestro servidor mediante:

--- Código: ---scp <archivo local> <host>:/usr/java
<pass>

--- Fin del código ---

Le damos permisos de ejecución:

--- Código: ---chmod +x /usr/java/jdk-6u25-linux-x64.bin

--- Fin del código ---

Y lo ejecutamos:

--- Código: ---/usr/java/jdk-6u25-linux-x64.bin

--- Fin del código ---

Renombramos la carpeta de jdk:

--- Código: ---mv /usr/java/jdk-6u25-linux-x64.bin /usr/java/jdk

--- Fin del código ---

Ahora es necesario registrar java para que sea conocido por todo el sistema (modificar las variables de entorno):
Vamos al archivo /etc/profile

--- Código: ---nano /etc/profile

--- Fin del código ---
y casi al final del todo, justo antes de la línea "unset i" añadimos o modificamos para tener lo siguiente (cuidado con los espacios):

--- Código: ---JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

--- Fin del código ---
guardamos (Ctrl+x, Y, Enter)
Finalmente para que tengan efectos los cambios realizados:

--- Código: ---source /etc/profile

--- Fin del código ---

Verificamos que java esta instalado correctamente:

--- Código: ---java -version

--- Fin del código ---
Que nos debe devolver la versión de java. ;)

Instalación de TOMCAT SSL
Nos descargamos el archivo tomcat desde el sitio oficial, esta vez podemos usar wget:
http://tomcat.apache.org

--- Código: ---wget http://apache.cict.fr/tomcat/tomcat-7/v7.0.14/bin/apache-tomcat-7.0.14.tar.gz /usr/java

--- Fin del código ---
Descomprimimos:

--- Código: ---tar xzf /usr/java/apache-tomcat-7.0.14.tar.gz /usr/java

--- Fin del código ---

Renombramos la carpeta:

--- Código: ---mv /usr/java/apache-tomcat-7.0.14 /usr/java/tomcat

--- Fin del código ---

Modificamos de nuevo el archivo /etc/profile para añadir las variables de entorno de tomcat:

--- Código: ---nano /etc/profile

--- Fin del código ---
Antes de "unset i" al final del archivo, tenemos:

--- Código: ---JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
--- Fin del código ---
Lo editamos para convertirlo en:

--- Código: ---JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
CATALINA_HOME=/usr/java/tomcat
export JAVA_HOME CATALINA_HOME PATH

--- Fin del código ---

Guardamos y actualizamos las variables:

--- Código: ---source /etc/profile

--- Fin del código ---

Configuración de tomcat:

Creamos las claves para el SSL:

--- Código: ---keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/java/tomcat/keystore
--- Fin del código ---
Hay que responder a algunas preguntas, no tiene dificultad.

Editamos el archivo de configuración de tomcat: /usr/java/tomcat/conf/server.xml
Hay un elemento Connector del estilo de:

--- Código: ---<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
        redirectPort="8443"
/>

--- Fin del código ---
Lo comentamos completamente entre <!-- y -->
Poco a continuación hay otro Connector que ya esta comentado, del estilo de:

--- Código: ---<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
/>

--- Fin del código ---
Lo descomentamos, quitando el <!-- y --> que lo engloban y lo editamos para que sea igual que:

--- Código: ---<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystorePass="TU CLAVE AQUI"
keystoreFile="/usr/java/tomcat/keystore"
/>

--- Fin del código ---
(No olvides de cambiar la clave por la que especificaste al crear el certificado)

Finalmente, lanzamos el servidor tomcat:

--- Código: ---/usr/java/tomcat/bin/startup.sh
--- Fin del código ---

Podemos probar nuestro servidor tomcat en:
https://<mihost>:8443

 :D

Resolviendo problemas de memoria y heap:
Algunas aplicaciones requieren bastante memoria o un tamaño de heap que superan los límites establecidos inicialmente.
Para resolver estos problemas editamos el archivo /usr/java/tomcat/bin/catalina.sh y justo después de los primeros comentarios, al principio del todo añadimos:

--- Código: ---JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1536m -XX:NewSize=64m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"

--- Fin del código ---
Por supuesto puede elegir los valores que quiera, son en MBytes.
Xms es el tamaño mínimo de memoria reservada por tomcat.
Xmx es el tamaño máximo de memoria reservada por tomcat.
XX son los tamaños del heap.

Fin

Espero les haya sido de utilidad.

PROBLEMA SIN RESOLVER:
El servidor no se lanza automáticamente después de un reinicio del servidor, hay que ejecutar $CATALINA_HOME/bin/startup.sh cada vez.

pythoner:
Muy buen aporte, sobre todo me ha gustado el tema de resolver los conflictos de memoria, pues como bien se sabe hay que cuidar lo que consumen estos sistemas (incluidos los de Python).

Un saludo ^_^

daniela.avila:
Hola, muy buen aporte...pero tengo un par de dudas

yo instale java en /usr/local/java pero cuando en el navegador pongo https://<midominio>:8443 me aparece "Se ha rechazado el intento de conexión de Google Chrome a <midominio>. Es posible que el sitio web no esté disponible o que la red no esté configurada correctamente."

y cuando pongo /usr/local/java/tomcat/bin/shutdown.sh me aparece el siguiente error "/usr/local/java/tomcat/bin/catalina.sh: line 330: /usr/local/jdk/bin/java: No such file or directory"

Ojalá que me puedan ayudar

shakaran:
Hola,

Ante todo te damos la bienvenida a nuestros foros. Parece ser que tu error es debido a una mala configuración con la ubicación del binario de java.

Tomcat lo esta buscando en /usr/local/jdk/bin/java y según comentas lo tienes instalado en /usr/local/java

Navegación

[0] Índice de Mensajes

Ir a la versión completa