Django SSLServer: Configuración de SSL en Django

Django SSLServer: Configuración de SSL en Django

Django es un framework de desarrollo web escrito en Python. Por defecto, el servidor de desarrollo de Django utiliza el protocolo HTTP, que es inseguro. Para mejorar la seguridad de tu aplicación, puedes configurar el servidor de desarrollo para que utilice el protocolo HTTPS, que utiliza cifrado para proteger los datos transmitidos entre el cliente y el servidor.

En este tutorial, te mostraré cómo configurar el servidor de desarrollo de Django para que utilice HTTPS.

Requisitos

Para seguir este tutorial, necesitarás:

  • Un entorno de desarrollo Python con Django instalado.
  • Un certificado SSL válido.

Obteniendo un certificado SSL

Puedes obtener un certificado SSL gratuito de Let’s Encrypt. Para ello, sigue los siguientes pasos:

  1. Instala el cliente Let’s Encrypt:
pip install certbot
  1. Genera un certificado SSL para tu dominio:
certbot certonly --domain example.com

Este comando generará un certificado SSL para el dominio example.com. El certificado se almacenará en el directorio /etc/letsencrypt/live/example.com.

Configurando Django para HTTPS

Una vez que tengas un certificado SSL válido, puedes configurar Django para que utilice HTTPS. Para ello, edita el archivo settings.py de tu aplicación Django y añade las siguientes líneas:

Python
# Configura el servidor para que escuche en el puerto 443
ALLOWED_HOSTS = ['example.com']
HTTPS_PORT = 443
HTTPS_SSL_CERTFILE = '/etc/letsencrypt/live/example.com/fullchain.pem'
HTTPS_SSL_KEYFILE = '/etc/letsencrypt/live/example.com/privkey.pem'

Estas líneas configuran el servidor de desarrollo para que escuche en el puerto 443, que es el puerto predeterminado para HTTPS. También especifican la ubicación del certificado SSL y la clave privada.

Ejecutando el servidor de desarrollo

Ahora puedes ejecutar el servidor de desarrollo con HTTPS:

python manage.py runsslserver

Este comando iniciará el servidor de desarrollo en el puerto 443.

Probando la configuración

Abre tu navegador web y visita tu aplicación Django en HTTPS. Deberías ver el siguiente mensaje:

Your connection is secure.

Conclusión

En este tutorial, has aprendido cómo configurar el servidor de desarrollo de Django para que utilice HTTPS. Esto mejorará la seguridad de tu aplicación al cifrar los datos transmitidos entre el cliente y el servidor.

Código adicional

Si quieres que tu aplicación sea accesible desde Internet, también tendrás que configurar un servidor web para que escuche en el puerto 443. Para ello, puedes utilizar un servidor web como Apache o Nginx.

Una vez que tengas un servidor web configurado, puedes apuntarlo a la carpeta raíz de tu aplicación Django. Por ejemplo, si tu aplicación Django está en la carpeta /var/www/example, puedes configurar Apache para que escuche en el puerto 443 de la siguiente manera:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/example
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>

Una vez que hayas configurado el servidor web, puedes acceder a tu aplicación Django en HTTPS desde cualquier lugar de Internet.