Cherokee y HTTPS

Arco

Todos conocemos Apache, un servidor web con muchos modulos, muchas cositas, muy usado, muy bueno, muy todo... pues bien, un programador de por aquí se decidió por crear un nuevo servidor web, más ligero y rápido y con la misma funcionalidad básica que apache: SSL, PHP, CGI y todas esas cosas que podemos pedir de un servidor Web normalito. Otra ventaja de cherokee es que es menos "atacado" que el apache, por tanto se conocen menos fallos. En fin, que vamos a explicar como habilitar el https en cherokee.

Configuración de cherokee
Sólo diré que la configuración es muy similar al de apache, el objetivo de esta receta no es explicar como configurar cherokee, sino simplemete una opción del mismo. Por tanto os remito a la documentación que tendréis en /usr/share/doc/cherokee cuando instaléis el paquete. Lo que si que voy a decir (y que conviene tener en cuenta) es que cuando cambiéis algo en la configuración, al reiniciar el servidor, en caso de error, no obtendréis ningún mensaje de error y el servicio no arrancará. Para probar los cambios es mejor arrancar el servidor "a lo bruto", es decir:

# /usr/sbin/cherokee

Así obtendréis mensajes de error y veréis si arranca o no. En fin, al trabajo...

Certificados

Es necesario crear una certificación para los sitios seguros, por eso de que sea un sitio confiable o no, etc. Por tanto, antes de nada debemos crear el nuestro propio, si tenemos los certificados creados para el apache, en /etc/apache2/ssl/apache.pem podemos usarlo directamente en el cherokee copiando el archivo en /etc/cherokee/ssl/cherokee.pem. Si necesitamos crear una certificación nueva, necesitaremos el paquete openssl y debemos hacer lo siguiente: crearemos un certificado CA, después deberemos crear una petición de certificación y finalmente firmaremos el certificado, esto se hace directamente en tres pasos:

/usr/lib/ssl/misc/CA.pl -newca

Introduciremos los datos que nos pidan (frase secretam etc.); esto generará un certificado CA, pero que todavía debemos firmar. Ahora creamos la petición de certificación:

$ /usr/lib/ssl/misc/CA.pl -newreq

Introduciremos los datos que nos vaya pidiendo. Con esto habremos obtenido una firma digital para nuestro certificado, ahora lo firmamos:

$ /usr/lib/ssl/misc/CA.pl -sign

Ya tenemos nuestro nuevo certificado firmado y listo para usar con cherokee (o apache) en un archivo pem. Lo copiamos a /etc/cherokee/ssl y lo llamamos cherokee.pem. Ahora sólo nos falta activar ssl en el cherokee.

Activar módulos

Habilitar/deshabilitar módulos es tan fácil como en apache: tenemos los módulos instalados en /etc/cherokee/mods-available y para activarlos debemos crear un enlace simbólico del módulo en /etc/cherokee/mods-enabled, es decir:

$ cd /etc/cherokee/mods-enabled
$ ln -s ../mods-available/ssl ssl

Ya sólo nos queda cambiar la configuración del servidor y reiniciarlo...

Configurar SSL

Este paso es el más complejo, abrimos el archivo /etc/cherokee/cherokee.conf y descomentamos la siguiente línea:

PortTLS 443

Reiniciamos el servidor:

$ /etc/init.d/cherokee restart

Y ya está... Sticking out tongue

Para más información: documentación de cherokee en /usr/share/doc/cherokee.

Referencias