Ezequiel M. Cardinali

Ezequiel M. Cardinali

Fedora Contributor | GNU/Linux SysAdmin
Certificados SSL gratis con letsencrypt

Certificados SSL gratis con letsencrypt

December 14, 2015 — ezq

Let's encrypt es una autoridad certificadora que provee certificados gratuitos X.509 para TLS a través de un proceso automatizado y sencillo evitando el engorroso procedimiento manual de generar e instalar certificados SSL para un sitio.
El proyecto fue comenzado por dos empleados de Mozilla en 2012 y a partir del 3 de Diciembre de 2015 entró en Beta pública. El proyecto está respaldado y desarrollado por la Electronic Frontier Foundation, la Universidad de Michigan, Linux Foundation, entre otros.
Personalmente creo que este tipo de proyectos son muy importantes, porque permiten utilizar la web de una forma segura sin gastar dinero y alimentar el negocio de los certificados SSL.

A continuación veremos como configurar un sitio para que utilice los certificados de letsencrypt. Aquellos que tengan que lidiar habitualmente con la configuración y generación de certificados SSL van a agradecer la existencia de letsencrypt debido a que el proceso es realmente automático y trivial.


Este tutorial está basado en Fedora 23, pero pueden verse las diferentes formas de instalar letsencrypt en este link.
En Fedora 23 lo instalamos como cualquier otro programa:
# dnf install letsencrypt
Esto instalará una cuantas dependencias y el cliente letsencrypt.
Antes de continual recomiendo ver la ayuda para ver qué podemos hacer con letsencrypt.
# letsencrypt --help

  letsencrypt [SUBCOMMAND] [options] [-d domain] [-d domain] ...

The Let's Encrypt agent can obtain and install HTTPS/TLS/SSL certificates.  By
default, it will attempt to use a webserver both for obtaining and installing
the cert. Major SUBCOMMANDS are:

  (default) run        Obtain & install a cert in your current webserver
  certonly             Obtain cert, but do not install it (aka "auth")
  install              Install a previously obtained cert in a server
  revoke               Revoke a previously obtained certificate
  rollback             Rollback server configuration changes made during install
  config_changes       Show changes made to server config during installation
  plugins              Display information about installed plugins

Choice of server plugins for obtaining and installing cert:

  (the apache plugin is not installed)
  --standalone      Run a standalone webserver for authentication
  (nginx support is experimental, buggy, and not installed by default)
  --webroot         Place files in a server's webroot folder for authentication

OR use different plugins to obtain (authenticate) the cert and then install it:

  --authenticator standalone --installer apache

More detailed help:

  -h, --help [topic]    print this message, or detailed help on a topic;
                        the available topics are:

   all, automation, paths, security, testing, or any of the subcommands or
   plugins (certonly, install, nginx, apache, standalone, webroot, etc)

Como vemos, la ayuda es muy clara y fácil de comprender. Vamos a crear un certificado para un sitio, en este caso voy a usar el dominio cardinali.org que es el de mi sitio. Generar el certificado es tan sencillo como ejecutar:
# letsencrypt certonly --webroot --webroot-path /var/www/html/cardinali.org/
El asistente nos preguntará por una dirección de correo y los dominios para los cuales se va a generar el certificado. El comando anterior genera un certificado pero no lo configura en nuestro servidor web (certonly) también le indicamos donde están los archivos del sitio (--webroot --webroot-path /var/www/html/cardinali.org/), de esta forma letsencrypt no necesita que paremos el servidor web para comprobar nuestro sitio antes de generar el certificado.
Terminado esto, ya podemos configurarlo en nuestro servidor web, los certificados y claves generados y que están activos se encuentran en /etc/letsencrypt/live/$domain.
Los certificados que van siendo revocados podemos encontrarlos en /etc/letsencrypt/archive y sus claves en /etc/letsencrypt/keys. Los certificado generados por letsencript duran 90 días, por lo que es necesario renovarlos en ese tiempo.
Si bien el proyecto aún está en beta, creo que no faltará mucho para que todos podamos tener nuestra web con https ya sin excusas.

Etiquetas: Fedora, SSL, HTTPS, letsencrypt

Commentarios?  

comments powered by Disqus