Saltar al contenido

Cómo proteger con Nginx Cifrar Vamos en Ubuntu 18.04

marzo 4, 2020

 

Una versión anterior de este tutorial fue escrito por Cifrar Hazel Virdó

Introducción

Let es una autoridad de certificación (CA) que proporciona una manera fácil de obtener e instalar certificados TLS / SSL libres, permitiendo de este modo cifrado HTTPS en los servidores web . Simplifica el proceso proporcionando un cliente de software, Certbot, que los intentos de automatizar la mayoría (si no todos) de los pasos necesarios. Actualmente, todo el proceso de obtención e instalación de un certificado está totalmente automatizado en tanto Apache y Nginx.

En este tutorial, utilizará Certbot para obtener un certificado SSL libre para Nginx en Ubuntu 18.04 y configurar su certificado de renovar automáticamente.

este tutorial se utilizará un archivo de bloque de servidor independiente Nginx en lugar del archivo predeterminado. Se recomienda crear nuevos archivos de bloques del servidor Nginx para cada dominio, ya que ayuda a evitar errores comunes y mantiene los archivos predeterminados como una configuración de repliegue.

Requisitos previos

Para seguir este tutorial, necesitará:

  • Una Ubuntu 18.04 servidor configurado siguiendo esta configuración inicial del servidor de Ubuntu 18.04 tutorial, incluyendo un usuario no root sudo y un firewall.
  • Un plenamente nombre de dominio registrado. Este tutorial se utilizará a lo largo de example.com. Usted puede comprar un nombre de dominio en Namecheap, obtener una gratis en Freenom, o utilizar el registrador de dominio de su elección.
  • ambos de los siguientes registros DNS configurado para el servidor. Puede seguir esta introducción a digitalocean DNS para obtener más información sobre cómo agregar un registro con them.An example.com señalando pública registro IP address.An Una de su servidor con www.example.com apuntando a la dirección IP pública del servidor.
  • Un registro A con example.com apuntando a la dirección IP pública del servidor.
  • Un registro A con www.example.com apuntando a la dirección IP pública del servidor.
  • Nginx instalar siguiendo Cómo instalar Nginx en Ubuntu 18.04. Asegúrese de que tiene un bloque de servidor para su dominio. Este tutorial utilizará /etc
    ginx/sites-available/example.com como un ejemplo.

Una Ubuntu 18.04 servidor configurado siguiendo esta configuración inicial del servidor de Ubuntu 18.04 tutorial, incluyendo un usuario no root sudo y un firewall.

Un plenamente nombre de dominio registrado. Este tutorial se utilizará example.com largo. Usted puede comprar un nombre de dominio en Namecheap, obtener una gratis en Freenom, o utilizar el registrador de dominio de su elección.

ambos de los siguientes registros DNS configurado para el servidor. Puede seguir esta introducción a digitalocean DNS para obtener detalles sobre cómo añadirlos.

  • Un registro A con example.com apuntando a la dirección IP pública del servidor.
  • Un registro A con www.example.com apuntando a la dirección IP pública del servidor.

Nginx instalar siguiendo Cómo instalar Nginx en Ubuntu 18.04. Asegúrese de que tiene un bloque de servidor para su dominio. Este tutorial utilizará /etc
ginx/sites-available/example.com como un ejemplo.

Paso 1 – Instalación de Certbot

El primer paso para utilizar Cifrar Vamos a obtener un certificado SSL es instalar el software Certbot en su servidor.

Certbot está en desarrollo muy activo, por lo que los paquetes Certbot proporcionados por Ubuntu tienden a ser obsoleta. Sin embargo, los desarrolladores Certbot mantener un repositorio de software de Ubuntu con versiones actualizadas, por lo que vamos a utilizar ese repositorio en su lugar.

En primer lugar, añadir el repositorio:

sudo add-apt-repository ppa:certbot/certbot

  • sudo add-apt ppa-repositorio: certbot / certbot

Tendrá que pulsar ENTER para aceptar.

Instalar paquete de Nginx de Certbot con apt:

sudo apt install python-certbot-nginx

  • sudo apt instalar Python-certbot-nginx

Certbot está ahora listo para su uso, pero en orden para que SSL configure de Nginx, tenemos que verificar algunos de configuración de Nginx .

Paso 2 – Confirmación de Nginx configuración

Certbot tiene que ser capaz de encontrar el bloque de servidor correcto en la configuración de Nginx para que sea capaz de configurar automáticamente SSL. En concreto, se hace esto mediante la búsqueda de una directiva server que coincide con el dominio que solicita un certificado.

Si ha seguido el bloque de servidor configurado paso en el tutorial de instalación Nginx, usted debe tener un bloque de servidor para su dominio en /etc
ginx/sites-available/example.com con la directiva server ya configurado adecuadamente. cheque

A, abra el archivo de bloque de servidor para su dominio utilizando nano o su editor de texto favorito:

sudo nano /etc
ginx/sites-available/example.com

  • sudo nano /etc
    ginx/sites-available/example.com

Encuentre la línea server existente. Se debe tener este aspecto:

...
server_name example.com www.example.com;
...

Si no lo hace, su editor de salir y pasar a la siguiente etapa.

Si no es así, actualizar que ésta coincida. A continuación, guarde el archivo, salga de su editor, y verificar la sintaxis de sus ediciones de configuración:

sudo nginx -t

  • sudo nginx -t

Si se produce un error, vuelve a abrir el archivo de bloque servidor y comprobar que no existen errores tipográficos o caracteres que faltan. Una vez que la sintaxis del archivo de configuración es correcta, Nginx recarga para cargar la nueva configuración:

sudo systemctl reload nginx

  • sudo systemctl recarga nginx

Certbot puede ahora encontrar el bloque servidor correcto y actualizarlo.

A continuación, la actualización de Let el firewall para permitir el tráfico HTTPS.

Paso 3 – Permitir HTTPS a través del firewall

Si tiene el servidor de seguridad habilitado UFW, según lo recomendado por las guías de requisitos previos, tendrá que ajustar la configuración para permitir el tráfico HTTPS. Por suerte, Nginx registra unos perfiles con UFW momento de la instalación.

Se puede ver la configuración actual escribiendo:

sudo ufw status

  • sudo UFW estado

Probablemente se verá así, lo que significa que sólo el tráfico HTTP se permite al servidor web:

OutputStatus: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)

Para permitir, además, en el tráfico HTTPS, permitir que el perfil Nginx completo y eliminar la redundancia Nginx HTTP asignación perfil:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

  • sudo UFW permiten ‘Nginx completa’
  • sudo UFW eliminar permitir ‘Nginx HTTP’

Su estado ahora debería tener este aspecto:

sudo ufw status

  • sudo UFW estado

OutputStatus: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)

A continuación, vamos a Certbot carrera y buscar a nuestros certificados.

Paso 4 – Obtención de un certificado SSL

Certbot proporciona una variedad de maneras de obtener certificados SSL a través de plugins. El plug-in Nginx se hará cargo de la reconfiguración de Nginx y volver a cargar la configuración siempre que sea necesario. Para utilizar este plugin, escriba lo siguiente:

sudo certbot --nginx -d example.com -d www.example.com

  • sudo certbot –nginx -d -d example.com www.example.com

Esto va en certbot con el –nginx plugin, utilizando -d para especificar los nombres nos gustaría que el certificado sea válido para.

Si esta es tu primera certbot tiempo de ejecución, se le pedirá que introduzca una dirección de correo electrónico y de acuerdo con los términos del servicio. Después de hacerlo, certbot se comunicará con el servidor Cifrar del Let, a continuación, ejecute un reto para verificar que usted controla el dominio que está solicitando un certificado para.

Si esto tiene éxito, certbot le preguntará cómo desea configurar su configuración de HTTPS.

OutputPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

seleccionar su opción presione la tecla ENTRAR. La configuración se actualizará y volverá a cargar Nginx para recoger la nueva configuración. certbot terminará con un mensaje explicando que el proceso se ha realizado correctamente y donde se almacenan sus certificados:

OutputIMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2018-07-23. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- 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.
- 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

Sus certificados se descargan, instalan, y se cargan. Intente volver a cargar su sitio web mediante https: // y observe el indicador de seguridad de su navegador. Cabe indicar que el sitio está protegido adecuadamente, por lo general con un icono de bloqueo verde. Si el resultado es el servidor utilizando la Prueba de SSL Server Labs, se obtendrá un grado Un . el tiro de

Let probando el proceso de renovación.

Paso 5 – Cifrar los certificados de Verificación de Certbot auto-renovación

Let sólo son válidos durante noventa días. Esto es para animar a los usuarios a automatizar su proceso de renovación del certificado. El paquete certbot instalamos se encarga de esto para nosotros mediante la adición de una secuencia de comandos para renovar /etc/cron.d. Este script se ejecuta dos veces al día y se renovará automáticamente cualquier certificado que está dentro de los treinta días de caducidad.

para probar el proceso de renovación, se puede hacer un ensayo con certbot:

sudo certbot renew --dry-run

  • sudo certbot renovar—dry ejecutar

Si no ve errores, eso es todo. Cuando sea necesario, se Certbot renovar sus certificados y volver a cargar Nginx para recoger los cambios. Si el proceso de renovación automática cada vez falla, Cifrar Vamos enviará un mensaje al correo electrónico especificada, que le advierte cuando su certificado está a punto de expirar.

Conclusión

En este tutorial, se instala certbot cliente Cifrar del Let, descargar certificados SSL para su dominio, Nginx configurado para utilizar estos certificados, y establecer la renovación automática de certificados. Si tiene más preguntas sobre el uso Certbot, su documentación es un lugar bueno para comenzar.