certificado SSL servidor local

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.
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.