Instalar Certificado SSL gratis por Let’s Encrypt en Nginx

por | 25/03/2018

Cómo instalar Let´s Encrypt paso a paso

Hoy en día tener una página web si certificado digital SSL es una locura, ya no sólo por la seguridad, sino porque Google nos penalizará. Todavía hay muchísimas webs sin SSL. Se puede entender que haya gente que no quiera pagar por un certificado SSL, pero todavía encuentro empresas con su web sin SSL. En cheapssl.com podemos obtener SSL por $10 al año! En fin, sin aun así vemos caro gastarnos ese dinero podemos usar los certificados gratuitos de Let’sEncrypt. Let’s Encrypt es freem automated and open certificate authority.

Bueno os mostraré como instalarlo. Podéis ver cómo funciona en el siguiente LINK

Voy a usar un servidor Web con NGINX corriendo sobre CentOS7. Decir que Let´s Encrypt lo podemos usar tanto en RedHat/CentOS como en Debian/Ubuntu o incluso en cPanel.

Primero de todo instalaremos certbot para nginx.

yum install certbot-nginx

Una vez instalado es muy sencillo el generar el certificado.

cerbot --nginx --d dominio.com --d www.dominio.com

Cuando generamos un certificado, lo primero de todo es que nuestro dominio apunte a nuestro servidor, es lo primero que va a validar Let´s Encrypt, que nuestro registro DNS de dominio.com apunte a la IP desde donde estamos lanzando cerbot.

Indicaremos una cuenta de email, Aceptamos los Terms of Service y nos pregunta si deseamos recibir información.

Genera archivos de configuración con el certificado y su ruta y nos preguntará si queremos redirigir el tráfico de http a https.

Una vez creado para mejorar la seguridad mejoraremos los parámetros Diffie-Hellman, básicamente que entre nuestro servidor y el usuario el intercambio de información sea más seguro. Para ello haremos lo siguiente.

openssl dhparam –out /etc/letsencrypt/dhparam.pem 2048 (OJO esto tardará un par de horas en acabar ).

Seguidamente tenemos crea agregar en nuestro crontab el siguiente comando para que cerbot vaya renovando nuestro certificado SSL.

El certificado SSL de Let´s Encrypt tiene una valided de 2 meses por eso hay que ir renovándolo.

Si vamos a la configuración de nginx, veremos que nos ha agregado la ruta de los certificados.

Y modifica la configuaración para redirigir tráfico de http a https.

Con ésto ya tendremos nuestro certificado SSL listo!

Un pensamiento en “Instalar Certificado SSL gratis por Let’s Encrypt en Nginx

  1. Gustavo

    Holaa Norman, excelentísimo artículo ante todo 😉
    Te comento el siguiente problema encontrado al intentar hacerlo en un entorno virtualizado desde Proxmox, por el detalle del error es por seguramente estar usando los DNS internos de systemd-resolve desde Ubuntu 18.04 hay forma de hacerlo así sin tener por delante ese servicio ajeno a la máquina?

    [email protected]:~# certbot certonly \
    > -d tomcatsrv02.testing.com \
    > –noninteractive \
    > –standalone \
    > –agree-tos \
    > –register-unsafely-without-email
    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    Plugins selected: Authenticator standalone, Installer None
    Registering without email!
    Obtaining a new certificate
    Performing the following challenges:
    http-01 challenge for tomcatsrv02.testing.com
    Waiting for verification…
    Cleaning up challenges
    Failed authorization procedure. tomcatsrv02.testing.com (http-01): urn:ietf:params:acme:error:dns :: DNS problem: NXDOMAIN looking up A for tomcatsrv02.testing.com – check that a DNS record exists for this domain

    IMPORTANT NOTES:
    – The following errors were reported by the server:

    Domain: tomcatsrv02.testing.com
    Type: None
    Detail: DNS problem: NXDOMAIN looking up A for
    tomcatsrv02.testing.com – check that a DNS record exists for this
    domain
    – 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.

    [email protected]:~# systemd-resolve –status
    Global
    Link 2 (ens18)
    Current Scopes: DNS
    LLMNR setting: yes
    MulticastDNS setting: no
    DNSSEC setting: no
    DNSSEC supported: no
    DNS Servers: 8.8.8.8
    9.9.9.9
    DNS Domain: testing.com

Deja una respuesta

Tu dirección de correo electrónico no será publicada.