¿Que es Let’s Encrypt y como configurarlo?

Adrián Alonso
4 min readApr 6, 2017

Let’s Encrypt se trata de una autoridad de certificación, conocidas con las siglas CA, libre y gratuita impulsada por la Fundación Linux, que permite generar certificados SSL gratuitos y automáticos para nuestros sitios web. El objetivo de la comunidad que está detrás es el de promover que el tráfico de Internet sea seguro.

Detrás de este proyecto se encuentra el apoyo de empresas como Mozilla, Akamai, Google o Facebook. Let’s Encrypt emitió más de 24 millones certificados en su primer año, y la cifra aumenta a diario.

Ellos definen el proyecto de la siguiente manera:

We give people the digital certificates they need in order to enable HTTPS (SSL/TLS) for websites, for free, in the most user-friendly way we can. We do this because we want to create a more secure and privacy-respecting Web.

¿Como funciona?

Let’s Encrypt utiliza el protocolo ACME (Automatic Certificate Management Environment) , el cual se basa en un proceso en dos pasos, por un lado la validación del dominio y la solicitud del certificado. te recomiendo que leas la documentación oficial donde muestra un ejemplo bastante bueno especificando todo el proceso.

Características de Let’s Encrypt

  • Los certificados son totalmente gratuitos (Siempre puedes hacer una donación al proyecto). 100% libre, cualquier dueño de su propio dominio puede obtener un certificado confiable.
  • La instalación en tu servidor es muy sencilla, más adelante mostraré un ejemplo.
  • No requiere de ningún e-mail de confirmación
  • Los principales navegadores reconocen estos certificados a la perfección
  • Los certificados se renuevan automáticamente. Estos certificados tienen una duración por defecto de 3 meses, pero son renovables.
  • Transparente: Todos los certificados emitidos o revocados serán registrados públicamente y estarán disponibles para que cualquier persona pueda inspeccionarlos.
  • Open Source: El protocolo de emisión y renovación automática se publicará como un estándar abierto que otros pueden adoptar.

Ejemplo de Instalación con Certbot

Cerbot es una herramienta que permite activar automáticamente el certificado ssl a través de tus certificados Let’s encrypt. Para instalar certbot entra en https://certbot.eff.org/ y selecciona tu sistema operativo y tu servidor web.

En mi caso estoy usando Ubuntu 14.04 y sirviendo la web con Apache. A continuación os detallo la traza de instalación. Lo primero es lanzar cerbot indicando tu servidor web:

certbot — apache

A continuación, te indicará donde dejará el log de debug de la instalación y te preguntará acerca del dominio sobre el que quieres generar los certificados y el email para las renovaciones y avisos de seguridad.

Saving debug log to /var/log/letsencrypt/letsencrypt.logNo names were found in your configuration files. Please enter in your domainname(s) (comma and/or space separated) (Enter ‘c’ to cancel):adrianalonso.esEnter email address (used for urgent renewal and security notices) (Enter ‘c’ tocancel): xxxxxx@gmail.comStarting new HTTPS connection (1): acme-v01.api.letsencrypt.org

Te solicitará que aceptes los términos de uso

Please read the Terms of Service athttps://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agreein order to register with the ACME server athttps://acme-v01.api.letsencrypt.org/directory— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -(A)gree/©ancel: A

A continuación empezará a ejecutar la acción para obtener el certificado, activar el modulo ssl en el apache y generar tu virtualhost con los certificados descargados:

Starting new HTTPS connection (1): supporters.eff.orgObtaining a new certificatePerforming the following challenges:tls-sni-01 challenge for adrianalonso.esEnabled Apache socache_shmcb moduleEnabled Apache ssl moduleWaiting for verification…Cleaning up challengesGenerating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pemCreating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pemCreated an SSL vhost at /etc/apache2/sites-available/000-default-le-ssl.confEnabled Apache socache_shmcb moduleEnabled Apache ssl moduleDeploying Certificate to VirtualHost /etc/apache2/sites-available/000-default-le-ssl.confEnabling available site: /etc/apache2/sites-available/000-default-le-ssl.conf

A continuación te pregunta si quieres mantener las dos opciones u obligar a que toda petición http se redigira a https

Please choose whether HTTPS access is required or optional.— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -1: Easy — Allow both HTTP and HTTPS access to these sites2: Secure — Make all requests redirect to secure HTTPS access— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -Select the appropriate number [1–2] then [enter] (press ‘c’ to cancel): 1— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -Congratulations! You have successfully enabled https://adrianalonso.es

Yo elegí que mantuviera las dos, pero posteriormente configuré en mi htaccess esta redirecicón 301

<IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{HTTPS} offRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]</IfModule>

Finalmente te dará una url donde puedes verificar la validez de este certificado y toda su información publica. Espero que entre todos securizemos Internet gracias a estas grandes iniciativas.

Puedes encontrar el artículo en https://adrianalonso.es/desarrollo-web/seguridad/que-es-lets-encrypt-y-como-configurarlo/

--

--