Cómo configurar el entorno de desarrollo de Django + HTTPS?

A, HTTP y desventajas del origen HTTPS

  • Como todos saben el protocolo HTTP es un protocolo de red del protocolo TCP como la piedra angular para el nacimiento de un contenido web de transferencia, en el 网络分层模型que pertenece a 应用层协议uno.

  • Desde una perspectiva de seguridad para explorar el uso de los problemas de seguridad inherentes en el protocolo de transferencia de datos:

    • (1), la comunicación utilizando el texto en claro (no cifrado), el contenido puede ser interceptada;
    • (2), no se autentica la parte de comunicación, y por lo tanto pueden encontrar disfraz;
    • (3) no se puede probar una línea completa de los mensajes, puede ser manipulado.
  • SSL es resolver los problemas de seguridad del protocolo HTTP , por la década de 1990, Netscape (Netscape) diseñó el SSLprotocolo (Secure Sockets Layer) - 安全套接层protocolo. Después de años de desarrollo SSL es ampliamente utilizado en Internet, el nombre fue cambiado después de la normalización TLS(Transport Layer Security) - 传输层安全protocolo.
    Aquí Insertar imagen Descripción

  • Se llama HTTPSque se HTTP + SSL/TLSutilizan en combinación. La solución es el protocolo HTTP problemas de seguridad para la transmisión de datos;

  • Principio: En HTTP 协议层y TCP传输层añadido entre 安全层, de modo que los paquetes de datos de capa de aplicación se cifran antes de la transmisión para garantizar la integridad de los datos durante la transmisión.

  • Por lo tanto, SSL / TLS en el proceso de transmisión de datos es cómo implementar el cifrado para garantizar la integridad de los datos que?

    • Aquí, tenemos que estudiar más a fondo la lógica de cifrado del acuerdo. Hay dos algoritmos de cifrado: a saber, 对称加密y 非对称加密.

Dos, el cifrado simétrico

  • Acerca de "cifrado simétrico" puede entenderse como un "recíproco" operación matemática (cifrado contraste unidireccional es un algoritmo de cifrado reversible). Que se cifra, se puede descifrar, pero no importa el proceso de cifrado o descifrado, debe haber un crucial llamadas cosas "clave" que intervienen en el cálculo.
    Aquí Insertar imagen Descripción
  • El cifrado simétrico característica más grande: es que el cifrado y descifrado usando la clave "misma". Así que la pregunta clave - la interacción con el cliente y el servidor mediante una "clave" común a Cifrar comunicaciones, lo que requiere el servidor al cliente transferirá clave, pero si lo hace y cómo se puede asegurar que durante la transmisión clave seguridad que? Si la tecla sufrió una intercepción de terceros durante la transmisión, que los medios de comunicación de dos extremos es el tercero en términos de comunicación y texto claro no hay diferencia. Esto no se aplica escenarios clave de encriptación simétrica requieren la red.

Por lo tanto, nació 非对称加密! ! !

Tres, el cifrado asimétrico

  • El llamado "cifrado asimétrico" se utiliza para las claves de cifrado y descifrado son diferentes, cada tecla que produce la comunicación de doble cara pública y una clave privada y cambio de clave pública para una comunicación cifrada de dos terminales. Como se muestra a continuación, cuando la clave pública del servidor al cliente, la clave pública de cliente utilizado en la comunicación de datos está cifrada, incluso si una clave pública intercepción encuentro terceros durante la transmisión, ya que la clave de descifrado se almacena siempre en el servicio final y no se hará público, por lo que la única manera de interceptar una clave pública puede alterar los datos no descifra.

  • Sin embargo, estos escenarios son todavía un cierto riesgo de espionaje. Después de eso, ya que el interceptor para interceptar los servidores responde a la clave pública del cliente, forjado la identidad del servidor, la respuesta del cliente a fisgón pública. Después de la clave pública del cliente se utiliza para cifrar datos de espionaje, el espía que intercepta un mensaje de datos utilizando su clave privada para descifrar los datos de texto para obtener la alteración de datos, entonces la clave pública del servidor para cifrar los datos y las comunicaciones del servidor. Todo el proceso de la comunicación, los clientes no son conscientes de sus propias comunicaciones entre pares en la final es un espía o un servidor.

  • 观察下图中的图示模型,假设通信过程已被窃听。那么问题到底出在哪里?

  • riesgo de espionaje ilustra el cifrado asimétrico es la siguiente:
    Aquí Insertar imagen Descripción

  • Podemos empezar todo un proceso para analizar:

    • El primer cliente solicita la clave pública y la clave pública obtenida de un "par" en la respuesta. A continuación, mediante el uso de la "clave pública" de la comunicación. El problema es la parte del este - obvio, como cliente y no el "clave pública" y "fuente" hacer la verificación. En otras palabras, el cliente no está claro, el "público" es realmente cierto desde el servidor en lugar de una tercera parte fisgón.

    • Después de eso, el cliente debe hacer la verificación de la "clave pública" para determinar que la clave pública es realmente desde un servidor legítimo, para garantizar la seguridad de la comunicación de doble extremo.

Cuatro, mecanismo de autenticación CA

  • Debe ser la introducción de las organizaciones de terceros:
    • 证书颁发机构CA(Autoridad de certificación): es decir 颁发数字证书的机构. Es la autoridad responsable de la emisión y gestión de certificados digitales, transacciones de comercio electrónico como un tercero de confianza, responsable de la legitimidad de la inspección pública en el sistema público.

    • central CA se emitirá un certificado digital para cada usuario utilizando la clave pública, el papel de los certificados digitales que confirman la legitimidad de la clave pública del usuario que aparece en el certificado. mecanismo de firma digital de CA permite que un atacante no pueda ser falsificada y manipulada con el certificado. En otras palabras, el certificado no puede ser alterado, siempre que el certificado es válido y legal, entonces la clave pública en el certificado es válido y legítimo!

    • El servidor proporcionará la clave pública de la CA, CA agencia utiliza su propio servidor de cifrado de clave pública clave privada después de que el certificado de CA (la clave pública del servidor de certificado se almacena) de vuelta al servidor. generales del sistema operativo o el navegador se construirán CA certificado raíz. Cuando un usos cliente después (como el navegador) cuando la solicitud al servidor, se proporcionará el certificado de servidor de CA al cliente, el cliente llega a la raíz del certificado CA certificado de CA autenticación local (verificación por parte significa legitimidad certificado de servidor CA, indirecta indicar la fuente de la legitimidad de la clave pública).

En quinto lugar, los certificados de firma propia para lograr Django + HTTP + SSL

  • Dado que la aplicación formal al certificado de CA requiere que las instituciones, en esto, yo soy una comunicación basada en el servidor a través de https Django certificado autofirmado en la forma de una configuración sencilla.

    (1) Crear un certificado raíz emitido por el perfil de CA MyCompanyCA.cnf
    Aquí Insertar imagen Descripción

    (2) Crear ampliar el perfil (para la creación de certificado de CA del servidor)MyCompanyLocalhost.ext
    Aquí Insertar imagen Descripción

    (3) crear un certificado de CA y la clave (necesidad de usar openssl, se puede instalar a través de la herramienta de gestión de paquetes)
    Aquí Insertar imagen Descripción

    (4), crear un certificado SSL y los documentos de aplicación clave
    Aquí Insertar imagen Descripción

    (5) emisión de certificados SSL
    Aquí Insertar imagen Descripción

  • Después de que el procedimiento anterior, OpenSSL consigue mediante certificado autofirmado, en el que MyCompanyCA. cial para el certificado raíz de CA (esto es debido a nuestra firma automática, sistema o navegador, y el certificado raíz no se construye, tenemos que añadir manualmente). archivo de certificado SSL es MyCompanyLocalhost. cer, archivo de claves de certificado SSL es MyCompanyLocalhost.pvk.

Seis, servidor de prueba Django empezar HTTPS

  • Inicio del servidor HTTPS prueba de la siguiente manera:

    (1), las dependencias de instalación
    Aquí Insertar imagen Descripción

    (2) modificar el archivo de configuración Django
    Aquí Insertar imagen Descripción

    (3), comience con https Django servicio
    Aquí Insertar imagen Descripción

  • Dado que Django se ha iniciado el servicio HTTPS, pero todavía no puede utilizar el navegador para el acceso HTTPS (certificado del servidor no es de confianza).
    Aquí Insertar imagen Descripción

Siete, instalar el certificado raíz CA

  • CA tiene que ser certificado raíz autofirmado instalado para requerir el uso de HTTPS para cliente de acceso. Se añade lo siguiente a la macos certificado ilustrado sistema operativo (Windows también se relaciona funcionamiento de la interfaz):

    (1), añadir certificados raíz
    Aquí Insertar imagen Descripción

    (2), configurar el sistema para confiar en el certificado
    Aquí Insertar imagen Descripción

  • Desde entonces, uno de los cliente (navegador) se completa la adición, se puede usar https para acceder al servidor.
    Aquí Insertar imagen Descripción

Publicados 176 artículos originales · ganado elogios 694 · vistas 510 000 +

Supongo que te gusta

Origin blog.csdn.net/PY0312/article/details/105069728
Recomendado
Clasificación