🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónComprobar certificados
5 tareas · 40 min · Principiante
Un certificado vencido o autofirmado en un servicio publicado es de los hallazgos más repetidos y más fáciles de demostrar, y de los más fáciles de informar mal: una fecha mal leída o un huso horario ignorado cambian el estado del hallazgo. Durante la enumeración del encargo ficticio de Pesquera Rompeolas se guardó, solo para lectura, lo que presenta cada servicio TLS del alcance. En esta sala lees dos versiones de un script de Python que calcula los vencimientos y decides cuál produce una fecha que puedas poner en el informe.
Objetivo de la sala
Un certificado vencido o autofirmado en un servicio publicado es de los hallazgos más repetidos y más fáciles de demostrar, y de los más fáciles de informar mal: una fecha mal leída o un huso horario ignorado cambian el estado del hallazgo. Durante la enumeración del encargo ficticio de Pesquera Rompeolas se guardó, solo para lectura, lo que presenta cada servicio TLS del alcance. En esta sala lees dos versiones de un script de Python que calcula los vencimientos y decides cuál produce una fecha que puedas poner en el informe.Que un certificado esté «próximo a vencer» depende de qué día es hoy. Si el script lee el reloj del equipo, la misma exportación da resultados distintos al ejecutarla el día del trabajo, el día del informe y el día en que el cliente la repite para comprobar su arreglo. Un hallazgo que cambia solo por pasar el tiempo no es reproducible.
Por eso el script recibe la fecha de trabajo como argumento y la escribe en la primera línea de su salida. El criterio de aviso (aquí, 30 días o menos) también va escrito en el encargo y no en la cabeza de quien ejecuta.
Responde para continuar
Calculas vencimientos de certificados con un script. ¿Por qué la fecha de referencia se le pasa como argumento?
Ver pista de ayuda
Piensa en el cliente repitiendo la comprobación un mes después.
openssl x509 -noout -enddate imprime la fecha de fin de validez como notAfter=Oct 12 14:00:00 2026 GMT: mes con tres letras en inglés, día rellenado con un espacio cuando tiene una cifra (Jan 5), hora y la zona GMT. Un script que interpreta ese texto con el nombre de los meses del idioma del sistema funciona en un equipo configurado en inglés y falla —o peor, interpreta mal— en uno configurado en español, donde enero es «ene».
La defensa es leer las fechas con una configuración regional invariante (en PowerShell, [cultureinfo]::InvariantCulture) o con una biblioteca que no dependa del idioma, y probar el script con una fecha con día de una sola cifra.
Responde para continuar
Tu script lee fechas como Jan 5 08:00:00 2027 GMT y funciona en tu equipo en inglés. ¿Qué riesgo corre en el portátil de un compañero configurado en español?
Ver pista de ayuda
openssl escribe siempre el mes en el mismo idioma; lo que cambia es el equipo que lo interpreta.
Abre el laboratorio. certificados.txt guarda, para cada servicio, el sujeto, el emisor y las fechas. vencimientos_v1.py convierte las fechas, calcula los días que faltan respecto a la fecha de trabajo 2026-09-23 y marca el estado; salida_v1.txt es lo que imprimió, ordenado de lo más cercano a lo más lejano. Un día negativo es un certificado que ya venció.
Responde para continuar
¿Cuál es el nombre del sujeto (CN) del certificado que ya está vencido en la fecha de trabajo?
Ver pista de ayuda
Busca en salida_v1.txt el estado VENCIDO.
Como la fecha es un argumento, puedes preguntarte qué diría el informe otro día. El certificado del portal vence el 12 de octubre de 2026 a las 14:00 GMT. Cuenta los días completos que habrían faltado si la fecha de trabajo hubiera sido el 30 de septiembre de 2026, y comprueba con el criterio del encargo (30 días o menos) si seguiría marcándose como por vencer.
Responde para continuar
¿Cuántos días habrían faltado para el vencimiento del portal con fecha de trabajo 2026-09-30?
Ver pista de ayuda
Septiembre tiene 30 días; cuenta hasta el 30 de septiembre y luego hasta el 12 de octubre.
Cuando el emisor y el sujeto de un certificado son el mismo, está autofirmado: ninguna autoridad de confianza lo respalda y quien se conecta no tiene cómo comprobar que habla con el servicio que cree. El script lo marca en su salida con una palabra clave. Busca esa marca y dime a qué certificado se refiere.
Responde para continuar
¿Cuál es el nombre del sujeto (CN) del certificado marcado como autofirmado?
Ver pista de ayuda
Busca la palabra AUTOFIRMADO en salida_v1.txt.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.