Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Deja tu post en el foro para hacer algun tipo de consulta

Autor Tema: Java JDK + Servidor Tomcat SSL  (Leído 17600 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Escain

  • Usuario nuevo
  • *
  • Karma: +3/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 2
    • Ver Perfil
    • Escain project
Java JDK + Servidor Tomcat SSL
« en: Junio 13, 2011, 02:47:58 am »

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: [Seleccionar]
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh

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: [Seleccionar]
mkdir /usr/java

A continuación instalamos los paquetes necesarios:
Código: [Seleccionar]
yum -y update
yum -y install httpd httpd-devel php php-common php-devel

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: [Seleccionar]
scp <archivo local> <host>:/usr/java
<pass>

Le damos permisos de ejecución:
Código: [Seleccionar]
chmod +x /usr/java/jdk-6u25-linux-x64.bin

Y lo ejecutamos:
Código: [Seleccionar]
/usr/java/jdk-6u25-linux-x64.bin

Renombramos la carpeta de jdk:
Código: [Seleccionar]
mv /usr/java/jdk-6u25-linux-x64.bin /usr/java/jdk

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: [Seleccionar]
nano /etc/profile
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: [Seleccionar]
JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
guardamos (Ctrl+x, Y, Enter)
Finalmente para que tengan efectos los cambios realizados:
Código: [Seleccionar]
source /etc/profile

Verificamos que java esta instalado correctamente:
Código: [Seleccionar]
java -version
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: [Seleccionar]
wget http://apache.cict.fr/tomcat/tomcat-7/v7.0.14/bin/apache-tomcat-7.0.14.tar.gz /usr/java
Descomprimimos:
Código: [Seleccionar]
tar xzf /usr/java/apache-tomcat-7.0.14.tar.gz /usr/java

Renombramos la carpeta:
Código: [Seleccionar]
mv /usr/java/apache-tomcat-7.0.14 /usr/java/tomcat

Modificamos de nuevo el archivo /etc/profile para añadir las variables de entorno de tomcat:
Código: [Seleccionar]
nano /etc/profile
Antes de "unset i" al final del archivo, tenemos:
Código: [Seleccionar]
JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
Lo editamos para convertirlo en:
Código: [Seleccionar]
JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
CATALINA_HOME=/usr/java/tomcat
export JAVA_HOME CATALINA_HOME PATH

Guardamos y actualizamos las variables:
Código: [Seleccionar]
source /etc/profile

Configuración de tomcat:

Creamos las claves para el SSL:
Código: [Seleccionar]
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/java/tomcat/keystoreHay 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: [Seleccionar]
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
        redirectPort="8443"
/>
Lo comentamos completamente entre <!-- y -->
Poco a continuación hay otro Connector que ya esta comentado, del estilo de:
Código: [Seleccionar]
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
/>
Lo descomentamos, quitando el <!-- y --> que lo engloban y lo editamos para que sea igual que:
Código: [Seleccionar]
<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"
/>
(No olvides de cambiar la clave por la que especificaste al crear el certificado)

Finalmente, lanzamos el servidor tomcat:
Código: [Seleccionar]
/usr/java/tomcat/bin/startup.sh
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: [Seleccionar]
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"
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.
« última modificación: Junio 13, 2011, 04:01:31 am por Escain »
En línea

pythoner

  • Usuario nuevo
  • *
  • Karma: +4/-0
  • Desconectado Desconectado
  • Mensajes: 20
  • Open your eyes, open your mind, open your source
    • Ver Perfil
Re:Java JDK + Servidor Tomcat SSL
« Respuesta #1 en: Junio 13, 2011, 14:06:39 pm »

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 ^_^
En línea

daniela.avila

  • Visitante
Re:Java JDK + Servidor Tomcat SSL
« Respuesta #2 en: Octubre 04, 2011, 18:15:55 pm »

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
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Java JDK + Servidor Tomcat SSL
« Respuesta #3 en: Octubre 04, 2011, 18:32:10 pm »

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
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support
 

Página generada en 0.071 segundos con 33 consultas.