Cómo configurar el certificado SSL gratuito «Let$0027s Encrypt» en Nginx (Ubuntu)

Si ha leído muchos artículos sobre consejos de privacidad, seguramente se encontrará con un consejo que le pide que instale la extensión «HTTPS everywhere» para que le redirija automáticamente a la versión HTTPS del sitio web siempre que sea posible. Lo malo es que la extensión HTTPS everywhere sólo funciona cuando el sitio web que está visitando ha implementado SSL, y para la mayoría de los administradores de sitios web, eso puede ser una tarea difícil (y costosa) de por sí. Por suerte, con el movimiento Let$0027s Encrypt, ahora es más fácil para los webmasters añadir certificados SSL a sus sitios.

En el pasado (y en la actualidad), la configuración de un certificado SSL requiere que primero se genere una clave privada en el servidor, luego se compre un certificado SSL a la Autoridad de Certificación (lo que puede resultar caro) y, por último, se configure en el servidor. Hay mucho tecnicismo involucrado en el proceso, y no hacerlo correctamente hará que el certificado SSL sea inútil. Con el proyecto Let$0027s Encrypt, uno puede añadir rápidamente un certificado SSL a sus sitios sin ningún coste. Y al estar respaldado por grandes actores del sector como Mozilla, Akamai, Cisco, EFFIf you y Google, es compatible con la mayoría de los navegadores y sistemas operativos.

En este tutorial vamos a recorrer los pasos para configurar el certificado SSL de Let$0027s Encrypt en el servidor Nginx. Estamos usando un servidor Ubuntu 14.04 para este tutorial y asumimos que usted está usando un servidor Nginx Ubuntu que funciona. La instrucción puede ser diferente para el servidor Ubuntu 16.04.

Instale Let$0027s Encrypt

Primero, para instalar Let$0027s Encrypt, necesitará git para clonarlo desde su repositorio git. Instale git con el siguiente comando:

sudo apt-get install git bc

Una vez instalado, clone el repositorio de Let$0027s Encrypt:

sudo git clone https:/github.comletsencryptletsencrypt optletsencrypt

Configuración del entorno

Antes de proceder a la instalación y configuración del certificado SSL, es importante permitir el acceso a la carpeta .well-known en el directorio raíz de la web. Por defecto, todos los archivos y carpetas con un «.» delante del nombre del archivo están ocultos y no son accesibles al público. Sin embargo, en este caso necesitaremos dar permiso para que el público acceda a la carpeta .well-known, ya que es donde Let$0027s Encrypt almacenará un archivo especial para su validación.

Diríjase a la carpeta de configuración de su sitio Nginx y ábrala (si tiene un archivo de configuración personalizado para su sitio) o utilice el predeterminado:

cd etcnginxsites-available
sudo nano default

Añada las siguientes líneas en el bloque del servidor:

ubicación ~ \\Nde la página web conocida {
permitir todo;
}

Guarde (Ctrl + O) y cierre (Ctrl + x) el archivo de configuración.

Pruebe la configuración de Nginx:

sudo nginx -t

Si toda la configuración funciona bien, recargue la configuración:

sudo service nginx reload

Genere un certificado SSL

Ahora que ha terminado con la configuración de Nginx, lo siguiente es instalar el certificado SSL.

Vaya a la carpeta Let$0027s Encrypt:

cd optletsencrypt

Ejecute el siguiente comando para generar el certificado:

.letsencrypt-auto certonly -a webroot –webroot-path=usrsharenginxhtml -d example.com

Aquí hay que cambiar algunas cosas:

  • Cambie la ruta webroot a la ruta raíz del documento de su sitio. El valor por defecto es «usersharenginxhtml», pero su configuración puede ser diferente.
  • Cambie «ejemplo.com» por su propio nombre de dominio. Tenga en cuenta que «example.com» y «www.example.com» son dos dominios diferentes. Si desea que el certificado admita varios dominios, simplemente añada -d ejemplo1.com al final del comando. Por ejemplo, para configurar un certificado SSL para los dominios «example.com», «www.example.com», «example1.com» y «www.example1.com», utilice el siguiente comando:

.letsencrypt-auto certonly -a webroot –webroot-path=usrsharenginxhtml -d ejemplo.com -d www.example.com -d ejemplo1.com -d www.example1.com

En la primera ejecución el script instalará un montón de archivos Python en su sistema. Una vez hecho esto, comenzará el proceso de generación del certificado. Primero le pedirá su dirección de correo electrónico:

Después se le pedirá que lea las condiciones del servicio en el sitio web de Let$0027s Encrypt. Seleccione «Aceptar».

Si ve el siguiente mensaje:

NOTAS IMPORTANTES:
– ¡Felicidades! Su certificado y su cadena se han guardado en
etcletsencryptliveexample.comfullchain.pem. Su certificado
expirará el 2016-10-02. Para obtener una versión nueva o modificada de
este certificado en el futuro, simplemente ejecute letsencrypt-auto de nuevo.
Para renovar de forma no interactiva *todos* sus certificados, ejecute
«letsencrypt-auto renew»
– Si le gusta Certbot, por favor considere apoyar nuestro trabajo
Donando a ISRG Let$0027s Encrypt: https:/letsencrypt.orgdonate
Donando a EFF: https:/eff.orgdonate-le

Eso significa que ha generado con éxito un certificado SSL para su(s) sitio(s). Si en lugar de eso ve un mensaje de error, solucione el error y vuelva a intentarlo.

Activando el certificado SSL para su sitio

Ahora que ha generado el certificado SSL, es el momento de activarlo para su sitio.

Vuelva a la carpeta de configuración de Nginx y abra el archivo de configuración del sitio:

cd etcnginxsites-available
sudo nano default

Cree un nuevo bloque de servidor y añada la siguiente configuración dentro del bloque:

servidor {
nombre_servidor ejemplo.com www.example.com;
listen 443 ssl;
ssl_certificado etcletsencryptliveexample.comfullchain.pem;
ssl_certificate_key etcletsencryptliveexample.comprivkey.pem;
}

Guarde y cierre el archivo.

Nota: lo anterior es una versión simplificada del bloque de configuración de Nginx. Debe añadir su propia configuración personalizada en el bloque.

Por último, pruebe la configuración:

sudo nginx -t

Si todo está bien, recargue Nginx:

sudo service nginx reload

Eso es todo. Ha configurado con éxito un certificado SSL para sus sitios. Ahora puede cargar la versión «https» de su URL para verla en acción.

Renovación automática de un certificado SSL de Let$0027s Encrypt

A diferencia de la mayoría de los certificados SSL comerciales que tienen una validez mínima de un año, un certificado SSL de Let$0027s Encrypt sólo es válido durante tres meses. Después de este tiempo tendrá que renovarlo para seguir utilizándolo. Let$0027s Encrypt viene con una opción de renovación para que pueda renovar fácilmente sus certificados sin tener que volver a realizar toda la instalación. Las siguientes instrucciones le muestran cómo configurar una tarea cron para renovar automáticamente su certificado SSL.

Todavía en su servidor, abra el crontab:

sudo crontab -e

Añada las siguientes líneas:

00 0 * * 1 optletsencryptsencrypt-auto renew>> varlogle-renew.log
05 0 * * 1 etcinit.dnginx reload

Las líneas anteriores comprobarán la fecha de caducidad de sus certificados SSL todos los lunes a las 12 de la mañana y los renovarán si está cerca de la caducidad. También recargará Nginx (a las 12.05am) para asegurar que el certificado renovado está en uso.

Guarde y cierre el crontab.

Conclusión

Si tiene un sitio web pequeño y está interesado en añadir SSL a su sitio, Let$0027s Encrypt es una gran opción para añadir credibilidad a su sitio. Es (relativamente) fácil de configurar y no cuesta nada (gratis, como la cerveza), así que no hay razón para no hacer uso de él. Sin embargo, dado que sólo proporciona un certificado validado por dominio (DV) (el tipo más básico de certificado SSL) para aquellas empresas que requieran certificados SSL validados por organización (OV) o validados por extensión (EV), un certificado SSL comercial es probablemente el camino a seguir.

Internet2 – HTTPS

Deja un comentario

Este sitio web utiliza cookies para mejorar tu experiencia. Si continuas utilizando este sitio consideramos que estás de acuerdo con esto. Más información

Los ajustes de cookies en esta web están configurados para «permitir las cookies» y ofrecerte la mejor experiencia de navegación posible. Si sigues usando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar», estarás dando tu consentimiento a esto.

Cerrar