Apache SSL y mod_jk

Enviado por keopx el Mié, 12/05/2010 - 18:22

Apache SSL y mod_jk

Introducción

Veremos como conectar Apache y Tomcat con soporte para SSL. La configuración de esta versión esta realizada sobre Apache 2 y Tomcat 6 pero seria igualmente para Apache 2 y Tomcat 5.5.

Paquetes

Antes de nada deberemos instalar los paquetes necesarios para la configuración.

sudo aptitude install openssl libapache2-mod-jk

Apache

SSL y mod_jk

Activar modulo SSL para Apache y mod_jk para la conexión de Apache con Tomcat:

$ a2enmod ssl
$ a2enmod jk

Certificados

Creamos los certificados necesarios para la aplicación. Para ello podemos seguir los pasos del siguiente documento:

Una vez creados es necesario el copiarlos a donde corresponde, que en nuestro caso sera el siguiente:

$ sudo mv mysite.crt /etc/ssl/certs/mysite.crt
$ sudo mv mysite.key /etc/ssl/private/mysite.key

VirtualHost Apache

Configuración del fichero default

$ sudo nano /etc/apache2/sites-available/default

Y lo dejamos tal que así:

ServerName *

       ServerAdmin webmaster@localhost
       DocumentRoot /var/www

       Options FollowSymLinks
       AllowOverride None


       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all


ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

       AllowOverride None
       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
       Order allow,deny
       Allow from all


ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"

       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 127.0.0.0/255.0.0.0 ::1/128



Sera necesario cambiar el /etc/apache2/ports.conf para añadir NameVirtualHost para el puerto 80.

Así:

NameVirtualHost *:80
Listen 80

       # SSL name based virtual hosts are not yet supported, therefore no
       # NameVirtualHost statement here
       NameVirtualHost *:443
       Listen 443

Si es necesitamos modificar la configuración de https por defecto deberos modificar el siguiente fichero:

/etc/apache2/sites-available/default-ssl

Ya tenemos activado y configurado la parte base para https

Tomcat 6

Damos por echo que tenemos una instalación de tomcat corriendo en un directorio de nuestra maquina.

Estos son algunos parámetros que deberemos tener en cuenta en el fichero server.xml, casi siempre están así configurados:

Puerto del tomcat 8080:

Conector para mod_jk y su puerto 8009:


mod_jk

Configuración de mod_jk para que conecte el Apache con Tomcat.

$ sudo nano /etc/apache2/mods-available/jk.conf

Escribimos esta linea:

JkWorkersFile /etc/apache2/workers.properties

Activamos el modulo:

$ sudo a2enmod jk

Mirar si existe el enlace simbólico en etc/apache2/mods-enabled/jk.conf en caso de no existir:

$ sudo ln -s /etc/apache2/mods-available/jk.conf /etc/apache2/mods-enabled/jk.conf

Crear el fichero workers.properties.

$ sudo nano /etc/apache2/workers.properties
# Ruta del tomcat
workers.tomcat_home=/home/usuario/proyectos/liferay-portal-5.2.3/tomcat-6.0.18
# Ruta de java
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

Es necesario el configurar en el fichero hosts la linea que identifica el dominio con la IP, puede que esto se deba a que es un entorno de desarrollo.

$ sudo nano /etc/hosts

En nuestro caso:

192.168.1.20 www.mysite.es mysite.es

Dominio para Apache

Creamos y configuramos para nuestro dominio:
$ sudo nano /etc/apache2/sites-available/mysite

       JkMount /* default
       ServerAdmin admin@yourdomain.com
       ServerName  www.mysite.es
       ServerAlias mysite.es


       JkMount /* default
       ServerAdmin admin@yourdomain.com
       ServerName  www.mysite.es
       ServerAlias mysite.es
       SSLEngine on
       SSLCertificateFile /etc/ssl/certs/mysite.crt
       SSLCertificateKeyFile /etc/ssl/private/mysite.key

Realizamos el enlace simbólico:

$ sudo ln -s /etc/apache2/sites-available/mysite /etc/apache2/sites-enabled/www.mysite.es

Reiniciamos para que coja los cambios:

$ sudo /etc/init.d/apache2 restart

Como se puede comprobar en el fichero hemos definido la aplicación a montar y donde y a su vez cuales serán los certificados:

Montaje, default lo hemos definido el workers.properties:

JkMount /* default

SSL:

SSLEngine on
SSLCertificateFile /etc/ssl/certs/mysite.crt
SSLCertificateKeyFile /etc/ssl/private/mysite.key

Observaciones

Es necesario simpre reiniciar primero el Tomcat y posteriormente Apache, para que coja bien las configuraciones.

En caso de no ser necesario la configuración de SSL (https) se pueden omitir esos paso así como no añadir las lineas correspondientes en Apache.

Referencias

Categoria

Añadir nuevo comentario

El contenido de este campo se mantiene privado y no se mostrará públicamente.

HTML Restringido

  • Etiquetas HTML permitidas: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.