0% encontró este documento útil (0 votos)
5 vistas4 páginas

Importancia y Configuración de SSL

Un certificado SSL es un archivo digital que cifra la comunicación entre usuarios y servidores, protegiendo datos sensibles y mejorando la confianza y SEO. Debe instalarse en el servidor que maneja conexiones HTTPS, ya sea directamente en un servidor web, en un proxy inverso o en un servicio en la nube. Para entornos Docker, se recomienda manejar SSL a través de un proxy inverso externo para facilitar la gestión y renovación del certificado.

Cargado por

priscinm
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas4 páginas

Importancia y Configuración de SSL

Un certificado SSL es un archivo digital que cifra la comunicación entre usuarios y servidores, protegiendo datos sensibles y mejorando la confianza y SEO. Debe instalarse en el servidor que maneja conexiones HTTPS, ya sea directamente en un servidor web, en un proxy inverso o en un servicio en la nube. Para entornos Docker, se recomienda manejar SSL a través de un proxy inverso externo para facilitar la gestión y renovación del certificado.

Cargado por

priscinm
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

¿Qué es un Certificado SSL y por qué es necesario?

Un certificado SSL (Secure Sockets Layer) es un archivo digital que se instala en un


servidor para habilitar el cifrado HTTPS. Sirve para:

●​ Cifrar la comunicación entre los usuarios y el servidor.​

●​ Proteger datos sensibles como contraseñas y tarjetas de crédito.​

●​ Evitar ataques de intermediarios (MITM - Man in the Middle).​

●​ Mejorar el SEO y la confianza de los usuarios.​

¿Dónde se instala el certificado SSL?

El SSL debe instalarse en el servidor que maneja las conexiones HTTPS. Dependiendo del
servicio y la arquitectura, el certificado puede aplicarse en diferentes lugares:

1.​ Si usas un servidor web (Apache, Nginx, etc.)​

○​ Debes instalar el certificado directamente en el servidor web configurando los


archivos .crt y .key.​

○​ Se agregan reglas en la configuración del servidor para habilitar HTTPS.​

2.​ Si usas un proxy inverso (ej. Nginx, Traefik, Caddy)​

○​ El proxy se encarga del tráfico HTTPS y “desencripta” las conexiones antes


de enviarlas a los servicios internos.​

○​ Aquí es donde normalmente se instala el SSL.​

3.​ Si usas un servicio en la nube (ej. Cloudflare, AWS, Google Cloud, etc.)​

○​ Algunas plataformas ofrecen SSL a nivel de dominio o balanceador de carga.​

○​ En este caso, puedes dejar la conexión encriptada hasta el servidor o


terminarla en el proxy.​

¿Es suficiente con que el dominio tenga SSL?


No siempre. Si usas un proveedor como Cloudflare que maneja SSL, pero la conexión de
Cloudflare a tu servidor es en HTTP, la comunicación interna sigue sin estar cifrada.

Idealmente, debes instalar un certificado en tu servidor si manejas datos sensibles o no


quieres depender de terceros.

¿Cómo afecta SSL si uso Docker?

Si usas Docker, tienes varias formas de manejar SSL:

1.​ SSL dentro del contenedor​

○​ Instalas el certificado dentro del contenedor (ej. en Apache o Nginx).​

○​ No es ideal porque cada vez que creas un nuevo contenedor, tendrías que
configurarlo nuevamente.​

2.​ SSL en un proxy inverso externo (Recomendado)​

○​ Usas un proxy como Nginx, Traefik o Caddy fuera del contenedor.​

○​ El proxy maneja el tráfico HTTPS y reenvía las solicitudes a los contenedores


internos en HTTP.​

○​ Ventaja: Centralizas el manejo de SSL y facilitas la renovación automática


con Let’s Encrypt.​

3.​ SSL en un balanceador de carga externo​

○​ Si usas servicios en la nube como AWS ELB o Cloudflare, puedes manejar


SSL allí y comunicarte en HTTP con tu backend.
○​

Ejemplo con Docker y Nginx como proxy

Si tienes una aplicación en Docker y quieres usar Nginx como proxy con SSL, podrías hacer
algo así:

1.​ Descargar e instalar Certbot para obtener un certificado SSL​


sudo apt install certbot sudo certbot certonly --standalone -d [Link]
2.​ Configurar Nginx con SSL (fuera del contenedor)​
server { listen 443 ssl; server_name [Link]; ssl_certificate
/etc/letsencrypt/live/[Link]/[Link]; ssl_certificate_key
/etc/letsencrypt/live/[Link]/[Link]; location / { proxy_pass
[Link] # Redirige tráfico a tu contenedor proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}
3.​ Docker Compose con la app y Nginx como proxy

version: '3'

services:

app:

image: mi-aplicacion

container_name: mi-app

ports:

- "5000:5000"

nginx:

image: nginx

container_name: proxy-nginx

volumes:

- ./[Link]:/etc/nginx/[Link]

- /etc/letsencrypt:/etc/letsencrypt

ports:

- "80:80"
- "443:443"

En este caso, Nginx gestiona HTTPS y reenvía las solicitudes a la aplicación en HTTP
dentro del contenedor.

Conclusión

●​ El SSL debe instalarse en el servidor que recibe las conexiones HTTPS.​

●​ Si usas Docker, lo mejor es manejar SSL en un proxy inverso (Nginx, Traefik, Caddy)
en lugar de dentro de cada contenedor.​

●​ Si usas servicios como Cloudflare o AWS, puedes manejar SSL ahí, pero aún así
deberías considerar cifrar la comunicación interna.​

También podría gustarte