Qué es un certificado SSL y cómo generarlo y usarlo para el desarrollo local, incluidas las pruebas en dispositivos móviles, analiza el desarrollador web senior.
Un poco de teoría
Un certificado SSL es un certificado digital que le permite asegurarse de que el servidor que transmitió los datos al cliente no está falsificado y que fue el servidor el que transmitió los datos.
Un certificado consta de una clave privada que se mantiene en secreto y que cifra los datos por el servidor, y el propio certificado de clave pública, que el cliente utiliza para descifrar los datos. Sin una clave privada, no es posible cifrar los datos para que el cliente los descifre con la misma clave pública. La información principal en el certificado es a quién se emitió, es decir, el nombre de dominio.
Además, la información sobre el emisor (certificado) con el que se firmó el certificado de servidor se puede codificar en el certificado. Esta información tiene una firma de control que solo puede ser generada por el titular de la clave privada del certificado del emisor. Por lo tanto, solo el editor puede firmar y generar un certificado válido.
El cliente considera que la conexión es segura si, al verificar la cadena de certificados, llega a las autoridades de certificación de confianza raíz integradas en el sistema o navegador, que a su vez están auto firmadas.
Te puede interesar:
Binance, comprará uno de sus principales competidores: FTX.
¿Para qué sirve?
Solicitudes que requieren un certificado válido para el desarrollo local:
- Aplicaciones PWA,
- Aplicaciones que utilizan WebRTC.
Hay dos maneras de realizar esta tarea:
- Generar un certificado auto firmado y agregarlo a la lista de entidades de certificación raíz de confianza; Por lo tanto, el dispositivo lo considerará válido. Como su nombre indica, es un certificado que está firmado por la clave privada de sí mismo.
- Genere un certificado raíz y agréguelo a la lista de entidades de certificación raíz de confianza, luego genere un certificado de servidor y fírmelo con el certificado raíz creado anteriormente.
Preparación
Vamos a necesitar OpenSSL. Instaladores binarios para Windows.
El archivo de configuración openssl.cfg
Generar un certificado auto firmado
- Generar una clave privada:
Resultado:
- Cree una solicitud de certificado:
- En el archivo de configuración openssl.cfg debe especificar un nombre de dominio o varios nombres en el bloque [alt_names. Anteriormente, solo se admitía un nombre, que se especificaba en el campo CN, pero ahora puede especificar varios nombres, así como crear un certificado comodín para todos los subdominios.
- Generar un certificado:
- Comprueba el resultado:
Resultado:
Ahora tiene el certificado example.com.crt y el archivo de clave example.com. key que puede usar en sus aplicaciones.
Te puede interesar:
Memory allocation in Python: how much and in what cases data types are occupied
Generar certificado raíz + certificado de servidor
- Genere una clave privada del certificado raíz:
Resultado:
- Crear un certificado:
- Repita los pasos del 1 al 5 de las instrucciones sobre el certificado autofirmado.
-
Generar un certificado firmado por nuestro certificado raíz:
- Comprueba el resultado:
Resultado:
Ahora tiene un certificado de servidor example.com.crt incluido con la clave example.com.key y un certificado raíz ca.crt incluido con la clave ca.key. Si agrega un certificado raíz al almacén de certificados raíz en su sistema o navegador, hará que todos los certificados firmados por él sean válidos.
Agregar un certificado raíz a Windows
El navegador Chrome utiliza el almacén de certificados del sistema:
¿Cómo registrar un dominio en un dispositivo Android?
Para probar las aplicaciones, debe asegurarse de que su nombre de dominio se resuelva en la dirección local de la computadora. Aquí hay dos soluciones:
- Al tener acceso root en el teléfono inteligente, edite el archivo hosts.
-
Si no hay derechos de root, entonces hay una solución más elegante: use la aplicación Postern. Este es un servidor VPN que se ejecuta en su dispositivo y puede modificar el tráfico, incluida la interceptación de consultas DNS y responder a ellas. A través de él, puede establecer la correspondencia del nombre de dominio example.com la dirección IP de su computadora en la red local donde se ejecuta el webpack-dev-server:
El hecho de que Postern se esté ejecutando se puede entender por el icono de candado en la barra de estado (VPN está habilitado, todas las solicitudes pasan por él).
Después de realizar todas las acciones, puede abrir su aplicación en el navegador:
¡Listo! Ahora no solo sabe en teoría qué es un certificado SSL, sino que también sabe cómo trabajar con él en la práctica.