Acme.sh facil (no tanto en CentOS 5)

Letsencrypt logoHe estado mirando últimamente la manera de empezar con Let’s Encrypt en un proyecto que andamos terminando. No lo había probado hasta ahora, pero tras leer un rato me he decantado por el script en BASH, Acme.sh, ya que el servidor sobre el que tengo que montar en producción está un poco desfasado y el cliente oficial (certbot) no funciona por defecto.

Esto es lo que he hecho para hacer funcionar Acme.sh en CentOS 5:

  • Instalar según el proyecto indica en el README. La única particularidad es que al utilizar wget para descargar el fichero acme.sh es necesario añadir –no-check-certificate.
  • Al intentar generar el certificado por primera vez fallaba y he necesitado añadir –insecure a la línea que estaba utilizando. Esto está relacionado con el parámetro anterior que he tenido que añadir a wget, y se debe a la versión de wget precisamente que hay disponible en los repositorios de CentOS.
  • Salvando este escollo, mi siguiente pega estaba en que Let’s Encrypt me rechazaba con un error 403 por falta de autenticación. He estado mirando por diferentes ficheros de mi instalación y modificando la línea en la que se añade un correo electrónico, en el fichero /home/mi-usuario/.acme.sh/account.conf (la línea comentada que empieza con ACCOUNT_EMAIL), se ha podido generar el certificado.
  • Mi siguiente pega ha sido con Rails: el proyecto que estaba poniendo en producción es una proyecto hecho en Rails y en la línea en que se indica a Acme.sh donde esta el raiz del proyecto para que realice la verificación automática del dominio, se debe añadir el directorio “public” para que la verificación no falle.

En concreto, para que todo vaya bien esta ha sido la línea final de generación del certificado:


acme.sh --issue -d mi.dominio.com --insecure -w /mi/ruta/hasta/proyecto/rails/public

El parámetro –debug es bastante útil también para ver que pasa bajo el capó 😉

Una vez generado el certificado es cuestión de configurar Apache (servicio HTTPD en CentOS) como cualquier otro (hay abundante documentación al respecto, o sea que no me meto, aunque quizá este sea un buen enlace al respecto) y listo 🙂

La conexión entre Apache y el proyecto Rails, en este caso se realiza con Phussion Passenger y no es necesario hacer nada mas al respecto. Únicamente en la aplicación Rails es necesario añadir que SSL debe estar activado. En este enlace se explica muy claramente cómo hacerlo para aplicaciones Rails (superiores a 3.1 e inferiores también).

Una nota interesante también es cómo redireccionar el tráfico del puerto 80 al 443 para servir siempre desde HTTPS y que ninguna petición se escape por el puerto 80. En el wiki de Apache se explica perfectamente 🙂

Mi conclusión es que muy positiva al respecto de Let’s Encrypt: en general es un proceso sencillo, y las pequeñas trampas que hay que solucionar son pequeñas piedras en el camino de cualquier administrador mínimamente experimentado. ¡Ánimo y probadlo!.

Posted in Ubuntu | Leave a comment

DDWRT: repetidor de un AP y AP propio a la vez

ddwrtDDWRT es un firmware alternativo para multitud de routers. Personalmente me parece que la combinación de este firmware con un router de Linksys, el WRT54GL, es una combinación perfecta para disponer en definitiva de un router que te permite multitud de combinaciones.

Una combinación que he tenido que configurar en un par de ocasiones, ha sido utilizarlo como cliente de un AP WiFi que ya existe, y simultáneamente que el router ofrezca un segundo AP WiFi para algunos equipos cliente. Primero se establece la interfaz principal como “Repeater” y se selecciona el SSID del AP WiFi que ya está emitiendo, y posteriormente se añade una interfaz virtual sobre la física para crear el emisor del AP WiFi que necesitamos:

ddwrt_repeater_1

Por último añadimos la autenticación para la interfaz “repetidora” y opcionalmente una clave WEP a la interfaz emisora:

ddwrt_repeater_2

¡Salud! 🙂

Posted in Hardware, Software, Software Libre | Tagged , , | Leave a comment

Ejecutar un script tras establecer un tunel OpenVPN

OpenVPNTeniendo un servidor OpenVPN montado y por ejemplo una RaspberryPi cliente que se conecte al arrancar, podemos llegar a necesitar que se ejecute un script que realice alguna acción, por ejemplo añadir unas rutas a la tabla de rutas del cliente.

Añadir los siguientes argumentos a la línea de comandos:

--script-security 2 --up /ruta/hasta/tu/script.bash

O metiendo en el fichero de configuración:

script-security 2
up /ruta/hasta/tu/script.bash

¡Salud! 🙂

Posted in Software, Software Libre, Solucioname esto..., Ubuntu | Tagged , , , , | Leave a comment

Soporte para DRAC5

Logo DellDell Remote Access Controller (o DRAC) es un dispositivo para permitir ver y administrar dispositivos Dell (típicamente servidores). Pues bien, recientemente he tenido que lidiar con varios de estos dispositivos en varios servidores, y para hacerlo funcionar con una versión reciente de Java en Ubuntu he tenido que modificar una restricción con cifrados antiguos para evitar este error:

Error consola DRAC Java

Concretamente editando este fichero:

/usr/lib/jvm/java-9-oracle/conf/security/java.security

Y comentando estas directivas de configuración:

#jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024
#jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768

A partir de ahí volviendo a entrar en la configuración del dispositivo DRAC, he podido activar la consola y resto de configuración que estaba fallando.

Posted in Hardware, Solucioname esto..., Ubuntu | Tagged , , , , | Leave a comment

Ambient Noise: sonidos blancos para tu mente

Me he encontrado esto y me ha parecido una gran idea para programar (o para concentrarse en pasarte la siguiente fase de The Last Ninja, jeje): http://anoise.tuxfamily.org/

Muy buen trabajo y apariencia. Funciona muy limpio y proporciona gran tranquilidad. Además de los sonidos que proporciona por defecto puedes añadir los tuyos propios, y también tiene integración con Gnome Shell: ¡a pedir de boca! 🙂

Posted in Programación, Ubuntu | Tagged , , | Leave a comment