En este tutorial, lo guiaremos a través de los pasos para instalar el certificado Let's Encrypt SSL en un VPS Ubuntu 18.04 y configurarlo con el servidor web Nginx.
Let's Encrypt es una organización de autoridad de certificación gratuita y automatizada. Su objetivo es llevar sitios web seguros a todos los usuarios de la web. Hacen que las instalaciones sean fáciles y sencillas, e incluso puede configurar la renovación automática para que nunca tenga que preocuparse por la caducidad de su certificado. Comencemos con la instalación.
Requisitos previos
- Servidor con sistema operativo Ubuntu 18.04. Esto también debería funcionar con otras distribuciones de Linux, pero este tutorial habla específicamente de Ubuntu 18.04.
- Usuario del sistema con privilegios sudo o la cuenta raíz
- Dominio o subdominio que apunta a su servidor. Para los propósitos de este tutorial, usaremos
domain.com
como ejemplo.
Paso 1:Iniciar sesión y actualizar el servidor
En primer lugar, inicie sesión en su servidor Ubuntu 18.04 a través de SSH como usuario root o cualquier otro usuario con privilegios sudo
ssh root@IP_Address -p Port_Number
Donde 'IP_Address' y 'Port_Number' son la dirección IP real de su servidor y el número de puerto SSH.
Una vez que haya iniciado sesión, ejecute los siguientes comandos para asegurarse de que todos los paquetes instalados en su servidor estén actualizados a la última versión disponible
apt update && apt upgrade
También puede habilitar las actualizaciones automáticas en su servidor como se describe en una de nuestras publicaciones de blog anteriores, lo cual es muy recomendable. De esta manera, el sistema buscará actualizaciones automáticamente.
Paso 2:Instale el servidor web Nginx
En este tutorial, instalaremos y usaremos el servidor web Nginx. Es un servidor web gratuito, de código abierto y de alto rendimiento conocido por su gran rendimiento, estabilidad, bajo uso de recursos, amplio conjunto de funciones y configuración simple. Nginx está disponible en los repositorios oficiales de Ubuntu 18.04 y la instalación es bastante sencilla. Ejecute el siguiente comando para instalarlo en su servidor
apt -y install nginx
Una vez que se instala el servidor web Nginx, debe iniciarse automáticamente. Puede verificar su estado con el siguiente comando
systemctl status nginx
Salida:
â nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-07-24 02:40:17 CDT; 1min 8s ago Docs: man:nginx(8) Process: 28420 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 28419 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 28421 (nginx) Tasks: 3 (limit: 2321) CGroup: /system.slice/nginx.service ââ28421 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ââ28422 nginx: worker process ââ28423 nginx: worker process Jul 24 02:40:17 hostname systemd[1]: Starting A high performance web server and a reverse proxy server... Jul 24 02:40:17 hostname systemd[1]: Started A high performance web server and a reverse proxy server.
Permita que Nginx se inicie automáticamente después de reiniciar el servidor
systemctl enable nginx
Paso 3:Instalar Certbot
Certbot es una herramienta gratuita y de código abierto escrita en Python que ayuda a obtener el certificado SSL de Let's Encrypt y configurarlo en su servidor web. La versión de Cerbot que se puede instalar desde los repositorios oficiales de Ubuntu está desactualizada, por lo que para instalar la última versión mantenida por el equipo de Certbot, tendremos que agregar el PPA de Certbot a su lista de repositorios.
Para hacerlo, ejecuta los siguientes comandos en tu servidor
apt install software-properties-common add-apt-repository universe add-apt-repository ppa:certbot/certbot
Durante el proceso de agregar el repositorio, se le pedirá que presione el botón Entrar para aceptarlo. Después de eso, actualice la lista de repositorios
apt update
Una vez que se agrega el repositorio y se actualiza la lista de repositorios, continúe e instale el paquete Certbot Nginx
apt -y install python-certbot-nginx
Paso 4:Instale un certificado SSL de Let's Encrypt
Como mencionamos en la sección "Requisitos previos" del tutorial, usaremos domain.com
como dominio de ejemplo. Entonces, para obtener el certificado SSL de Let's Encrypt para este nombre de dominio, ejecutaremos Certbot con el complemento -nginx que editará la configuración de Nginx para el dominio específico.
certbot --nginx -d domain.com -d www.domain.com
Durante la instalación del certificado SSL de Let's Encrypt, se le pedirá que ingrese una dirección de correo electrónico utilizada para la renovación urgente y los avisos de seguridad
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]
Lea y acepte los Términos de servicio de Let's Encrypt
Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v01.api.letsencrypt.org/directory ------------------------------------------------------------------------------- (A)gree/(C)ancel: A
Elija si desea o no redirigir todo el tráfico a HTTPS, lo cual se recomienda.
Please 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): 2 Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/default -------------------------------------------------------------------------------
Con este paso, el certificado SSL para domain.com
se instaló correctamente y puede acceder a su nombre de dominio en https://domain.com
. Puede usar Certbot para verificar esto y verificar la fecha de vencimiento del certificado
certbot certificates
Salida:
Saving debug log to /var/log/letsencrypt/letsencrypt.log ------------------------------------------------------------------------------- Found the following certs: Certificate Name: domain.com Domains: domain.com Expiry Date: 2019-10-22 08:56:19+00:00 (VALID: 89 days) Certificate Path: /etc/letsencrypt/live/domain.com/fullchain.pem Private Key Path: /etc/letsencrypt/live/domain.com/privkey.pem -------------------------------------------------------------------------------
Paso 5:Pruebe la renovación automática
El paquete certbot que instalamos en este tutorial viene con un temporizador systemd que verificará el certificado SSL y lo renovará automáticamente antes de que caduque. Puede verificar si el temporizador está funcionando como se muestra a continuación
systemctl list-timers |grep certbot Wed 2019-07-24 15:38:39 CDT 9h left n/a n/a certbot.timer certbot.service
Para probar si la renovación automática funciona correctamente, emita el siguiente comando
certbot renew --dry-run
Si funciona, ¡entonces eso es todo! Configuró con éxito un certificado de Let's Encrypt en su Ubuntu 18.04 VPS, así como también configuró la renovación automática.
Por supuesto, si usted es uno de nuestros clientes de Managed Ubuntu Hosting, no tiene que instalar Let's Encrypt en Ubuntu 18.04 con Nginx; simplemente pregúntele a nuestros administradores, siéntese y relájese. Nuestros administradores instalarán Let's Encrypt en Ubuntu 18.04 con Nginx inmediatamente.
PD. Si te gustó esta publicación sobre cómo instalar Let's Encrypt en Ubuntu 18.04 con Nginx , compártalo con sus amigos en las redes sociales usando los botones de compartir a continuación, o simplemente deje un comentario en la sección de comentarios. Gracias.