fbpx

Entonces estás haciendo un sitio web y claro que quieres que sea seguro para tus usuarios. Pero para que sea seguro necesitas un Certificado de SSL/TLS, entonces googleas un poco y te das cuenta de que son… honestamente bastante caros ¡Debe haber una mejor manera! … o al menos una gratuita… [ Musiquita no cool de informercial ]

¿Qué es un certificado SSL/TLS?

Empecemos diciendo que si estas haciendo un sitio web necesitas un certificado. Un certificado SSL/TLS sirve para encriptar la comunicación entre tu sitio web y tus usuarios. Al tener un certificado ayudas a proteger su privacidad: al intercambiar información en internet los datos pasan de un servidor a otro antes de llegar a la computadora del usuario; cualquiera de esos servidores podría ver la información que se esta enviando si no estuviera encriptada. Tener un certificado SSL/TLS garantiza que la comunicación entre tu usuario y tu sitio no es interferida.

Si ya mamá :roll_eyes: ya voy a la tortillería por mi certificado.

Let’s Encrypt

Let’s Encrypt es un servicio gratuito que te permite solicitar certificados SSL/TLS para usar en todas tus necesidades web. Puedes obtener un certificado en minutos y la única desventaja contra otros servicios de paga es que tienes que renovarlos al menos cada tres meses.

Estos son certificados válidos y seguros en todas* las plataformas y los puedes utilizar para servidores web, de correo, FTP y cualquier otra cosa que utilice un nombre de dominio.

Certbot Nginx y macOS

Vamos a utilizar la terminal para hacer la mayoría de este tutorial. Instalaremos certbot para Nginx en macOS, para seguir con la linea de los tutoriales anteriores. Pero si lo quieres hacer para otro sistema hay instrucciones muy concisas para en la documentación oficial de certbot, de donde esta inspirado este tutorial me estoy robando este tutorial. Y al final vamos a platicar un poco de qué hacer estas utilizando shared hosting y tu proveedor no soporta Let’s Encrypt oficialmente.

También estoy asumiendo que este pequño servidor de nginx + macOS esta en linea y que tienes un dominio ya registrado y configurado. Los cuales son buenos temas para furutos posts.

Para instalar certbot ¡solo tienes que instalar certbot!

bash
brew install certbot

¡Woooo tranquilo viejo! ¿Qué es eso de brew?

Si no tienes homebrew instalado, puedes revisar el tutorial anterior: Instalando Homebrew en macOS

Después si tienes instalado Nginx solo necesitas correr este comando, que seguramente te pedirá tu password del sistema.

bash
sudo certbot --nginx

certbot necesita permisos de administrador porque tu configuración de nginx seguramente esta en un directorio protegido, y la propia configuración de certbot también lo esta.

Y si sabes lo que estas haciendo en cuyo caso ¿por qué estas leyendo este tutorial? mejor comparteselo a tu amiguito el que no le sabe o ve y ¡disfruta el aire libre! puedes obtener el certificado manualmente y configurar Nginx manualmente también corriendo:

bash
sudo certbot --nginx certonly

Cualquiera de las opciones que decidas solo necesitas seguir las instrucciones en tu pantalla. Te pedirá el nombre del dominio que estas validando y seguramente te pedirá tu correo para contactarte en caso de que haya algun error de seguridad con tu certificado.

Si todo salió bien certbot se debió haber comunicado con sus servidores, tu sitio debió haber sido aprovado (que recuerda que tiene que tener un dominio ya configurado) y tus certificados deben estar configurados en tu configuración de Nginx.

Finalmente para renovar tu certificado solo necesitas correr este comando en el mismo servidor que hiciste tu configuración incial.

bash
certbot renew

Recuerda que lo debes hacer al menos cada tres meses.

Certbot y el flagelo del shared hosting

Vamos a ponernos bastante técnicos. Algunos shared hosting también soportan directamente Let’s Encrypt, aquí puedes encontrar una lista actualizada continuamente de proveedores que puedes utilizar.

Okeeeey ¿y si mi proveedor no lo soporta?

Esto depende de cada proveedor por lo que realmente no existen instrucciones específicas. Así que te voy a dar una idea general de qué hacer, o más bien de cómo lo he solucionado yo.

Para comenzar necesitas asegurarte de que tu proveedor soporta certificados, si utilizas CPanel (y si estas en shared casi seguro que si) puedes buscar la sección SSL/TLS en Seguridad, y luego Manage SSL Sites.

cpanel

Si cuentas con esta opción, entonces tu proveedor soporta SSL y en esa sección vas a colocar manualmente tus certificados.

Lo segundo que necesitas es acceso SSH a tu servidor, muchos proveedores no lo tienen activado por default, por lo que probablemente necesites solicitarlo directamente con customer support.

Si tu servidor utiliza Apache tu mejor opción es «montar» el directorio de public_html directamente en tu computadora. Y apuntando al directorio montado correr:

bash
certbot certonly --webroot -w example.com

Este comando va a publicar algunos archivos en public_html/.well_known/challenges que Apache pondrá en linea y luego serán utilizados para generar tu certificado (por eso necesitamos montar public_html). Cuando certbot termine tus certificados deberán estar en el directorio de configuración seguramente /etc/certbot/archive/<example.com>/cert1.pem

Otra opción es detener tu servidor, redireccionar el dominio a tu computadora local, y hacer el proceso corriendo este comando:

bash
sudo certbot certonly --standalone -d example.com


Este es un tutorial con pocas instrucciones específicas pero espero que te ayude a pensar de forma general que necesitas hacer para obtener obtener e instalar un certificado. Proximamente estaré trabajando en un tutorial de SSH, y otro de Git. Y podemos hacer este tutorial más específico si suficientes de ustedes lo solicitan. ¡Gracias por leer!