¡Tu navegador no está actualizado!

Actualiza tu navegador para visualizar esta página correctamente. Actualizarlo ahora!

¿Cómo instalar un certificado SSL Gratis?

Certificado SSL Gratis

La mejor manera de ofrecerles seguridad a los visitantes de tu sitio web es mediante un certificado SSL (Secure Socket Layer), el cual es un protocolo de seguridad que hace que los datos viajen de manera cifrada o encriptada entre el servidor y el navegador, garantizando así la integridad y confidencialidad de los datos, ademas de brindarle información al usuario que no se encuentra en un sitio falso (phishing).

 

¿Que es Let’s Encrypt?

 

Let’s Encrypt es una autoridad de certificación (CA) que de manera fácil y rápida permite instalar certificados gratuitos TLS/SSL. El proceso es simplificado mediante un cliente de software llamado Certbot, que de manera automaitazada permite instalar certificados en Apache y Ngninx.

En este tutorial utilizaremos Certbot para obtener un certificado SSL gratuito tanto en Apache como en Nginx en Ubuntu 16 y configurarlo para que se renueve automáticamente.

 

Recomendaciones

 

Recomendamos crear bloques de servidor por separado por cada uno de los dominios configurados, ya que así evitamos errores y es mas fácil su mantenimiento.

 

Requisitos

 

Necesitara lo siguiente:

  • Un servidor Ubuntu 16.04
  • Un usuario sudo no-root
  • Un dominio registrado
  • Un registro DNS A que apunta a la dirección IP pública de su servidor
  • Tener Apache o Ngninx instalado y con un bloque de servidor configurado

 

Agregar los repositorios de Certbot a Ubuntu

 

El primer paso para usar Let’s Encrypt para obtener un certificado SSL es instalar el software Certbot en su servidor, la comunidad de este software es muy activa, por lo que los paquetes proporcionados en los repositorios Ubuntu por lo general están desactualizados, sin embargo los repositorios de Certbot siempre están actualizados por sus desarrolladores, por lo que usaremos ese repositorio.

Ingrese a su servidor por el protocolo SSH y agregue el repositorio con este comando para agregar el repositorio.

sudo add-apt-repository ppa:certbot/certbot

Luego de presionar ENTER debe actualizar la lista de paquetes para recoger la información del repositorio recién agregado

sudo apt-get update

 

Instalar Certbot

 

Para instalar Certbot en Nginx debe digitar el siguiente comando en su consola.

sudo apt-get install python-certbot-nginx

Si esta usando un servidor Apache deberá usar este comando

sudo apt-get install python-certbot-apache

Luego de su instalación, Certbot ya esta listo para usar.

 

Obteniendo un certificado SSL

 

Antes de continuar debería tener un servidor Nginx o Apache instalado y configurado.

 

Si estas usando un servidor Nginx deberá correr este comando para obtener un certificado

sudo certbot --nginx -d ejemplo.com -d www.ejemplo.com

Si cuenta con un servidor Apache deberá usar este otro comando

sudo certbot --apache -d ejemplo.com -d www.ejemplo.com

Si es la primera vez que ejecuta Certbot, se le pedirá que ingrese una dirección de correo electrónico y acepte los términos del servicio. Después de hacerlo, Certbot se comunicará con el servidor Let’s Encrypt y luego ejecutará un desafío para verificar que usted controla el dominio para el que solicita el certificado.

Si todo resulta de manera correcta, Certbot le preguntará cómo le gustaría configurar su configuración de HTTPS.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Elija la opción que mas le parezca y presione ENTER, es recomendable elegir la opción 2 para forzar la redirección de HTTP a HTTPS de manera automática.

Una vez terminado Certbot le mostrara un mensaje indicandole que todo se realizo correctamente y donde se encuentran los certificados

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/ejemplo.com/fullchain.pem. Your cert will
   expire on 2017-10-23. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again with the
   "certonly" option. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - 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

Los certificados han sido creados y configurados en su servidor, pruebelo ingresando a su url usando https, todo debería funcionar de manera correcta, si eligió la opción de redirigir, pero, no lo hace, en nginx abra el documento.

sudo vim /etc/nginx/sites-available/ejemplo.com

descomente esta sección:

if ($scheme != "https") {
         return 301 https://$host$request_uri;
} # managed by Certbot

y reinicie el servidor.

Listo ya tiene configurado su certificado SSL en Nginx

 

Verifique la auto renovacion de su certificado SSL

 

Let’s Encrypt solo ofrece certificados validos por noventa dias, esto sirve para alentar a los usuarios a automatizar el proceso de renovación de su certificado.

El paquete Certbot que instalamos se encarga de esto ejecutando ‘certbot renew’ dos veces al día a través de un temporizador systemd.

En las distribuciones no incluidas en el sistema, esta funcionalidad es proporcionada por un script ubicado en /etc/cron.d. Esta tarea se ejecuta dos veces al día y renovará cualquier certificado dentro de los treinta días de vencimiento. Para probar el proceso de renovación, puede ejecutar en seco con Certbot:

sudo certbot renew --dry-run

Si no ve errores, ya está todo listo. Cuando sea necesario, Certbot renovará sus certificados y volverá a actualizara su servidor para obtener los los cambios. Si el proceso de renovación automática falla, Let’s Encrypt enviará un mensaje al correo electrónico que usted especificó, advirtiéndole cuando su certificado esté a punto de caducar.