Instalar y Renovar Certificados SSL LetsEncrypt – Certbot en Debian (Apache2)

EL presente instructivo tiene como finalidad la instalación de certificados SSL LetsEncrypt a través de Certbot para un website bajo Apache2, todo esto en GNU/Linux Debian.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Se debe contar con instalación de Apache2
  • Se debe contar con un dominio “juantrucupei.com.ve”

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.0 (actualmente estable)

Aplicaciones:

  • certbot 0.10.2-1
  • python-certbot-apache 0.10.2-1

Instalación de Paquetes:

root@server:/# aptitude install -y certbot python-certbot-apache

Configuración:

1. Generar un certificado para Apache2

root@server:/# certbot --authenticator standalone --installer apache -d juantrucupei.com.ve \
--pre-hook "service apache2 stop" --post-hook "service apache2 start"
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Running pre-hook command: service apache2 stop
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for juantrucupei.com.ve
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
Running post-hook command: service apache2 start
Created an SSL vhost at /etc/apache2/sites-available/000-default.conf_original-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/000-default.conf_original-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/000-default.conf_original-le-ssl.conf


2. Se presentan 02 opciones:

  • 1: Fácil: permite tanto el acceso HTTP como HTTPS a estos sitios
  • 2: Seguro: haga que todas las solicitudes se redireccionen para asegurar el acceso HTTPS

En éste caso se eligió la opción “2”

Please choose whether HTTPS access is required or optional.
-------------------------------------------------------------------------------
1: Easy - Allow both HTTP and HTTPS access to these sites
2: Secure - Make all requests redirect to secure HTTPS access
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting vhost in /etc/apache2/sites-available/000-default.conf_original to ssl vhost in /etc/apache2/sites-available/000-default.conf_original-le-ssl.conf

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://juantrucupei.com.ve

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=juantrucupei.com.ve
-------------------------------------------------------------------------------

IMPORTANT NOTES:
 - ¡Felicidades! Su certificado y cadena se han guardado en
   /etc/letsencrypt/live/juantrucupei.com.ve/fullchain.pem. Tu
   cert expirará en 2018-12-16. Para obtener una versión nueva o retocada
   de este certificado en el futuro, simplemente ejecute certbot nuevamente con
   la opción "certonly". Para renovar no interactivamente *todos* tus
   certificados, ejecute "certbot renew"

 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

3. Verificar la presencia de los certificados:

root@server:/# ls -la /etc/letsencrypt/live/juantrucupei.com.ve/
total 12
drwxr-xr-x 2 root root 4096 sep 17 16:47 .
drwx------ 3 root root 4096 sep 17 16:47 ..
lrwxrwxrwx 1 root root   46 sep 17 16:47 cert.pem -> ../../archive/juantrucupei.com.ve/cert1.pem
lrwxrwxrwx 1 root root   47 sep 17 16:47 chain.pem -> ../../archive/juantrucupei.com.ve/chain1.pem
lrwxrwxrwx 1 root root   51 sep 17 16:47 fullchain.pem -> ../../archive/juantrucupei.com.ve/fullchain1.pem
lrwxrwxrwx 1 root root   49 sep 17 16:47 privkey.pem -> ../../archive/juantrucupei.com.ve/privkey1.pem
-rw-r--r-- 1 root root  543 sep 17 16:47 README

4. Verificar configuración Apache2

root@server:/# apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Nota:

  • Activar el módulo SSL de apache (# a2enmod ssl)
  • Si se desea redirigir el tráfico de un host virtual previamente configurado por el puerto 80, se puede efectuar con un “Redirect permanent / https://juantrucupei.com.ve/”

RENOVAR CERTIFICADOS

1. Verificar la caducidad del certificado

root@server:/# openssl x509 -noout -dates -in /etc/letsencrypt/live/juantrucupei.com.ve/cert.pem
notBefore=Jun 11 18:37:45 2018 GMT
notAfter=Sep  9 18:37:45 2018 GMT

2. Renovar certificado

root@server:/# certbot renew --post-hook "service apache2 restart"

3. Consultar certificados:

root@server:/# ls /etc/letsencrypt/live/juantrucupei.com.ve/

certbot ha creado 4 archivos:

  • cert.pem: el certificado de los dominios.
  • chain.pem: el certificado de la cadena de Let’s Encrypt.
  • fullchain.pem: los dos certificados anteriores combinados.
  • privkey.pem: la clave privada del certificado.

Pero en realidad son enlaces simbólicos a 4 archivos existentes en el directorio /etc/letsencrypt/archive/juantrucupei.com.ve/

  • cert.pem -> ../../archive/juantrucupei.com.ve/cert1.pem
  • chain.pem -> ../../archive/juantrucupei.com.ve/chain1.pem
  • fullchain.pem -> ../../archive/juantrucupei.com.ve/fullchain1.pem
  • privkey.pem -> ../../archive/juantrucupei.com.ve/privkey1.pem

Los nombres de los 4 archivos termina en un número, cada vez que renueve el certificado (tienen una duración de 3 meses) se crearán 4 archivos nuevos, con este número incrementado en una unidad, y los 4 enlaces simbólicos apuntarán a estos nuevos archivos.

Enlaces:
Let’s Encrypt
Instalar SSL con Lets Encrypt en Ubuntu con Apache
Cómo: Redirigir HTTP a HTTPS en Apache
Instalar un certificado SSL de Let’s Encrypt en Debian 8 (Jessie) con Apache 2.4

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s