Saltar al contenido

certificado SSL servidor local

6 noviembre, 2019
certificado ssl gratis

Como instalar un

certificado ssl letsencrypt autoVeremos unos sencillos pasos para instalar un certificado SSL gratis con la plataforma Let’s Encrypt para convertir nuestro servidor local http a https.

Descargar SSL Let’s Encrypt

Para instalar un certificado SSL gratuito hemos elegido Let’s Encrypt.

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help

instalando certificado SSL en Apache

Si usas Apache y ya tienes el paquete puedes instalar el certificado con el siguiente comando:

./letsencrypt-auto --apache

Certificado SSL en Nginx

Para instalar el certificado ejecutamos la siguiente línea donde se nos pedirá nuestro correo electrónico y el nombre del dominio para obtener el SSL que se instalarán en 2 archivos de certificación, /etc/letsencrypt/live/tusitioweb.com/ denominados fullchain.pem y privkey.pem.

./letsencrypt-auto

Con esta opción sin parámetros el script detectará el servidor web que tenemos instalado, en este caso Nginx.

certificado ssl letsencrypt auto
certificado ssl letsencrypt auto
certificado ssl letsencrypt auto

Finalmente reiniciamos el servidor Nginx:

sudo service nginx restart

Script para auto renovación de letsencript

Para auto renovar letsencript usaremos una herramienta muy útil en linux para realizar tareas programadas llamada cron.

crontab -e

Con este comando añadiremos la siguiente línea de comandos anidados para que se ejecuten de manera programada cada cierto tiempo. En la siguiente tabla veremos unos ejemplos de como programar los tiempos de las tareas programadas con cron

Uso del comando CRON

Minuto  Hora  DiaDelMes  Mes  DiaDeLaSemana  Usuario  Comando
Campo Descripción
Minuto Controla el minuto de la hora en que el comando será ejecutado, este valor debe de estar entre 0 y 59.
Hora Controla la hora en que el comando será ejecutado, se especifica en un formato de 24 horas, los valores deben estar entre 0 y 23, 0 es medianoche.
Día del Mes Día del mes en que se quiere ejecutar el comando. Por ejemplo se indicaría 20, para ejecutar el comando el día 20 del mes.
Mes Mes en que el comando se ejecutará, puede ser indicado numéricamente (1-12), o por el nombre del mes en inglés, solo las tres primeras letras.
Día de la semana Día en la semana en que se ejecutará el comando, puede ser numérico (0-7) o por el nombre del día en inglés, solo las tres primeras letras. (0 y 7 = domingo)
Usuario Usuario que ejecuta el comando.
Comando Comando, script o programa que se desea ejecutar. Este campo puede contener múltiples palabras y espacios.

Un asterisco * como valor en los primeros cinco campos, indicará inicio-fin del campo, es decir todo. Un * en el campo de minuto indicará todos los minutos.

Ejemplos del comando CRON

Para entender bien esto de los primeros 5 campos y el asterisco usaré mejor varios ejemplos:

Ejemplo Descripción
05 * * * * Se ejecuta al minuto 5 de cada hora de todos los días
30 9 * * * A las 9:30 a.m. de cada día
15 21 * * * A las 9:15 p.m. de cada día
00 5 * * 0 A las 5 a.m. todos los domingos
* 5 * * Sun Cada minuto de 5:00a.m. a 5:59a.m. todos los domingos
45 20 1 * * A las 8:45 p.m. del primero de cada mes
01 * 20 7 * Al minuto 1 de cada hora del 20 de julio
10 2 * 12 1 A la 2:10 a.m. todos los lunes de diciembre
00 12 15 * Wen Al mediodía de los días 15 de cada mes y que sea Miércoles
30 9 20 7 4 A las 9:30 a.m. del dia 20 de julio y que sea jueves
30 9 20 7 * A las 9:30 a.m. del dia 20 de julio sin importar el día de la semana
10 * * * 6 Al minuto 10 de cada hora de los sábados
20 * * 1 6 Al minuto 20 de cada hora de los sábados de enero

En nuestro caso de ejemplo vamos a ejecutar el comando programado todos los domingos

00 5 * * 0 cd /home/pi/letsencrypt/ && ./letsencrypt-auto renew && sudo /etc/init.d/apache2 restart

Este script entra en la carpeta de letsencrypt y luego ejecuta ./letsencrypt-auto renew y finalmente reinicia el servidor apache2.