GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Let's Encrypt SSL con Nginx en Ubuntu 16.04 LTS

En este tutorial, le mostraremos cómo instalar Let's Encrypt SSL con Nginx en Ubuntu 16.04 LTS. Para aquellos de ustedes que no lo sabían, LetsEncrypt es una autoridad de certificación abierta y gratuita (CA ) que proporciona certificados gratuitos para sitios web y otros servicios. El servicio está respaldado por Electronic Frontier Foundation, Mozilla, Cisco Systems y Akamai. Desafortunadamente, los certificados de LetsEncrypt.org actualmente tienen una vigencia de 3 meses. Esto significa que deberá renueve su certificado trimestralmente por ahora.

Este artículo asume que tiene al menos conocimientos básicos de Linux, sabe cómo usar el shell y, lo que es más importante, aloja su sitio en su propio VPS. La instalación es bastante simple y asume que se están ejecutando en la cuenta raíz, si no, es posible que deba agregar 'sudo ' a los comandos para obtener privilegios de root. Le mostraré la instalación paso a paso Let's Encrypt SSL con Nginx en un servidor Ubuntu 16.04 LTS (Xenial Xerus).

Requisitos previos

  • Un servidor que ejecute uno de los siguientes sistemas operativos:Ubuntu 16.04 LTS (Xenial Xerus).
  • Se recomienda que utilice una instalación de sistema operativo nueva para evitar posibles problemas.
  • Acceso SSH al servidor (o simplemente abra Terminal si está en una computadora de escritorio).
  • Un non-root sudo user o acceder al root user . Recomendamos actuar como un non-root sudo user , sin embargo, puede dañar su sistema si no tiene cuidado al actuar como root.

Instalar Let's Encrypt SSL con Nginx en Ubuntu 16.04 LTS

Paso 1. Primero, asegúrese de que todos los paquetes de su sistema estén actualizados ejecutando el siguiente apt-get comandos en la terminal.

sudo apt-get update
sudo apt-get upgrade

Paso 2. Instalar Let's Encrypt SSL en Ubuntu 16.04.

El primer paso es instalar certbot, el cliente de software que automatizará casi todo el proceso:

add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install certbot

También necesitará tener Nginx instalado y ejecutándose. Por supuesto, si está agregando certificados en un host web configurado previamente, esto ya estaría instalado:

apt-get install nginx
systemctl start nginx

El primer paso para instalar let's encrypt SSL en Ubuntu Linux es agregar una configuración simple dentro de la configuración del bloque del servidor Nginx. Agregue esta línea a la configuración del bloque del servidor:

location ~ /.well-known {
  allow all;
  }

Guardar y salir para aplicar los cambios:

### nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reiniciar Nginx:

systemctl restart nginx

Obtención de un certificado con Certbot:

Ejecute el comando como se ve a continuación, reemplace "idroot.us" con su nombre de dominio real y /var/www/idroot.us con su ruta webroot real:

certbot certonly -a webroot --webroot-path=/var/www/idroot.us -d idroot.us -d www.idroot.us

Resultado:

[[email protected]:~]certbot certonly -a webroot --webroot-path=/var/www/idroot.us -d idroot.us -d www.idroot.us
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for idroot.us
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0001_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0001_csr-certbot.pem
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/idroot.us/fullchain.pem. Your cert
   will expire on 2017-07-16. To obtain a new or tweaked version of
   this certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - 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
[[email protected]:~]

Paso 3. Configure SSL/TLS en el servidor web NGINX.

Primero, edite el archivo de bloqueo del servidor que especificó durante la configuración a través de Certbot y agregue estas tres directivas:

listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/idroot.us/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/idroot.us/privkey.pem;

La configuración completa del bloque del servidor Nginx puede verse así:

server {
     listen 80;
     server_name idroot.us www.idroot.us;
     rewrite ^(.*) https://idroot.us$1 permanent;
}
server {
     access_log off;
     log_not_found off;
     error_log  logs/idroot.us-error_log warn;

    server_name  idroot.us; 
    root   /var/www/idroot.us;
    index  index.php index.html index.htm;

    listen 443 ssl http2;
    ssl_certificate /etc/letsencrypt/live/idroot.us/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/idroot.us/privkey.pem;

  ## Stuff required by certbot
     location ~ /.well-known {
     allow all;
     }

  ## SSL
   ssl_session_cache shared:SSL:20m;
   ssl_session_timeout 10m;

   ssl_prefer_server_ciphers On;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

   ssl_stapling on;
   ssl_stapling_verify on;
   resolver 8.8.8.8 8.8.4.4 valid=300s;
   resolver_timeout 10s;

   access_log /var/www/idroot.us/logs/access.log;
   error_log /var/www/idroot.us/logs/error.log;

   # php-script handler
   location ~ \.php$ {
      fastcgi_index index.php;
      fastcgi_pass 127.0.0.1:9000;       fastcgi_read_timeout 150;
      root    /var/www/idroid.us/public_html;
      fastcgi_param SCRIPT_FILENAME /var/www/idroot.us$fastcgi_script_name;
      include /etc/nginx/fastcgi_params;
   }
 location  ~ /\.ht {
               deny  all;
           }
    }

Guarde y cierre el archivo cuando haya terminado.

Paso 5. Configure la renovación automática de Let's Encrypt SSL.

Agregaremos un cronjob para ejecutar el comando de renovación cada semana, ejecute este comando:

export VISUAL=nano; crontab -e

Pegue las siguientes líneas:

01 1 * * 0 /usr/bin/certbot renew >> /var/log/ssl-renew.log 
06 1 * * 0 /usr/bin/systemctl nginx reload

Guardar y salir de la tabla crontab.

Esto creará un nuevo trabajo cron que se ejecutará todos los domingos a la 01 a. m. y luego recargará el servidor web Nginx para aplicar los cambios. El resultado será iniciado sesión en /var/log/ssl-renew.log archivo para un análisis más detallado si es necesario.

¡Felicitaciones! Has instalado correctamente Let's Encrypt. Gracias por usar este tutorial para instalar Let's Encrypt SSL en el sistema Ubuntu 16.04 LTS. Para obtener ayuda adicional o información útil, te recomendamos que consultes la página oficial de Let's Encrypt sitio web.


Ubuntu
  1. Cómo instalar Nextcloud con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

  2. Cómo instalar Magento 2 con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

  3. Cómo instalar Seafile con Nginx en Ubuntu 20.04 LTS

  4. Cómo implementar Modsecurity con Nginx en Ubuntu 20.04 LTS

  5. Cómo instalar Let's Encrypt SSL en Ubuntu 18.04 con Nginx

Cómo instalar Nginx con Let's Encrypt TLS/SSL en Ubuntu 20.04

Cómo instalar Let's Encrypt SSL con Nginx en CentOS 7

Cómo instalar Let's Encrypt SSL para Nginx en Ubuntu 18.04 LTS

Cómo instalar phpMyAdmin con Nginx en Ubuntu 20.04 LTS

Cómo instalar Nginx con Let's Encrypt SSL en Ubuntu 20.04 LTS

Cómo instalar Apache con Let's Encrypt SSL en Ubuntu 20.04 LTS