¿Qué es el Certificado SSL?
Con el tiempo, los casos de violaciones de seguridad relacionadas con Internet han ido en aumento a medida que los piratas informáticos continúan trabajando las 24 horas para robar datos de los usuarios con fines maliciosos. Un certificado SSL es un certificado digital que se instala en los servidores de sitios web principalmente para cifrar los datos enviados entre el navegador del usuario y el servidor para que solo el destinatario pueda acceder a ellos. Esto es crucial porque, sin encriptación, la información se envía como datos de texto sin formato y los piratas informáticos pueden interceptarla fácilmente.
Por esta razón, la mayoría de las tiendas de comercio electrónico y las plataformas de pago de dinero en línea como PayPal encriptan sus sitios web. El certificado SSL también permite la autenticación y garantiza que la información se envíe al servidor correcto y no a un hacker.
A Google le gustan los sitios seguros
El certificado SSL ayuda a posicionar su sitio más alto en Google. Según el anuncio de Google, los sitios con cifrado SSL tendrán una clasificación más alta que los que no lo tienen y que se consideran inseguros. Un sitio seguro está simbolizado por un candado en la barra de URL y la URL precedida por https en lugar de HTTP. Si sus sitios carecen de una extensión HTTPS segura, Google indica la URL del sitio como "No segura" y esto puede afectar negativamente
la clasificación de su sitio.
Nginx con certificación Let's Encrypt SSL en Ubuntu
En este artículo, veremos cómo proteger Nginx con Let's encrypt SSL en Ubuntu 18.04. Let's Encrypt es un SSL gratuito y automatizado proporcionado por la autoridad de Let's Encrypt. En 2018, Let's Encrypt había asegurado más de 150 millones de sitios web.
Comencemos y veamos cómo podemos asegurar Nginx con Let's encrypt SSL en Ubuntu 18.04.
Requisitos
Para comenzar, asegúrese de tener lo siguiente:
- Instancia de servidor del servidor Ubuntu 18.04 con acceso ssh
- Un uso no root con privilegios sudo
- Un nombre de dominio totalmente calificado (FQDN) con un registro A que apunta a la dirección IP del servidor
En este ejemplo, vamos a utilizar el nombre de dominio crazytechgeek.info que apunta a un VPS con dirección IP 18.191.46.130 .
Paso 1. Instalación de Nginx
Lo primero será instalar el servidor web Nginx. Pero primero, actualice su sistema iniciando sesión como usuario no root y ejecutando el siguiente comando.
$ sudo apt update
A continuación, instale Nginx con el siguiente comando.
$ sudo apt install nginx
Salida :
Una vez instalado, verifique que Nginx se esté ejecutando ejecutando el siguiente comando.
$ sudo systemctl status nginx
Salida :
¡Excelente! Ahora que hemos instalado nuestro servidor web, pasemos al siguiente paso.
Paso 2. Instalar Certbot
Instalemos ahora Certbot en nuestro servidor. En este ejemplo, usaremos el repositorio de software de Ubuntu que contiene todos los archivos actualizados. Para agregar el repositorio de Certbot, ejecute el siguiente comando.
$ sudo add-apt-repository ppa:certbot/certbot
Salida :
Instalación de Certbot
Para que los repositorios del sistema estén al tanto de los cambios realizados, actualice el sistema.
$ sudo apt update
Paso 3. Instalar el paquete Certbot Nginx
Luego vamos a instalar el paquete Certbot Nginx. Para lograr esto, ejecute el siguiente comando:
$ sudo apt-get install python-certbot-nginx
Salida
Paso 4. Actualizar el cortafuegos para permitir el tráfico HTTPS
necesitamos permitir el tráfico HTTPS a través del firewall para que SSL funcione usando el puerto 443. Primero verifiquemos el estado del firewall.
$ sudo ufw status
Salida
Antes de habilitar el firewall, primero permitamos "Nginx Full", que se encargará de HTTP y HTTPS.
$ sudo ufw allow 'Nginx Full'
Salida
Habilitemos ahora el firewall ufw. Presione 'y' cuando se le solicite.
$ sudo ufw enable
Salida
Verifiquemos si las reglas se agregaron al firewall.
$ sudo ufw status
Salida
Estado Ufw activo
Paso 5. Generación del certificado SSL
La última parte es la generación del certificado Let's Encrypt SSL. Para lograr esto, use la siguiente sintaxis.
$ sudo certbot --nginx -d example.com -d www.example.com
Esto generará el certificado SSL que será válido tanto para ejemplo.com como para www.ejemplo.com.
En nuestro caso, tendremos;
$ sudo certbot --nginx -d crazytechgeek.info -d www.crazytechgeek.info
Salida
Si está ejecutando Certbot por primera vez, primero se le pedirá que ingrese una dirección de correo electrónico.
Luego se iniciará la comunicación con el servidor Let's Encrypt e intentará verificar que usted controla el dominio para el que está solicitando un certificado.
Próximo. Presiona A para aceptar los términos del servicio.
A continuación, se le preguntará si desea que su dirección de correo electrónico se comparta con EFF. Aquí, puede optar por participar o no.
El siguiente paso es donde todo importa. Este es el punto en el que se le pedirá que redirija las solicitudes de HTTP a HTTPS. Selecciona la segunda opción.
Si todo salió bien, recibirá un mensaje de verificación de que todo salió bien.
¡Maravilloso! ha instalado correctamente Let's encrypt SSL en su servidor web Nginx.
Para verificar esto, vaya a la dirección de su servidor en el navegador y actualice.
Tenga en cuenta que la URL ha cambiado de HTTP a HTTPS al principio. Para ver más información sobre el certificado SSL, haga clic en el símbolo del candado y seleccione la opción 'Certificado'.
Salida
Renovar el certificado SSL de Let's Encrypt
La validez del certificado Let's Encrypt es de 90 días. Esto significa que la renovación es después de 3 meses. Let's encrypt realiza automáticamente la renovación para la automatización. Para probar el proceso de renovación, haga una prueba con Certbot como se muestra.
sudo certbot renew --dry-run
Si no hay errores, todo salió según el plan y, según sea necesario, se llevará a cabo la renovación automática. Todos los mensajes sobre la caducidad de la CA se enviarán a la dirección de correo electrónico especificada durante la configuración.