Certificados internos y externos

Victor Moral

Érase una vez un servidor con dos caras: una hacia dentro y otra hacia fuera. Hacia fuera ofrece algunos servicios ella misma y hace de puerta para conectar otros dentro.

Para que ésto funcione es necesario instalar certificados en ese servidor, cubriendo servicios directos y servicios de los que hace de proxy, y además instalar los mismos certificados en todas las máquinas interiores que ofrecen el servicio. Si se te olvida hacerlo tienes dos certificados que no coinciden entre sí y empieza la fiesta de los errores.

Un pequeño script que puede servir para ésto es el siguiente:

#!/usr/bin/env bash 

VERSION=0.2
HOST=${1:-venexma.net}
JUMP=${2:-venexma}

#   Comprobando lado externo
echo -e "\nComprobando conexión externa: \n"
echo | openssl s_client -connect $HOST:443 2>/dev/null | \
    openssl x509 -noout -ext subjectAltName -dates

#   Ahora conexión interna haciendo
echo -e "\nComprobando conexión interna: \n"
ssh $JUMP "echo | openssl s_client -connect $HOST:443 2>/dev/null | \
    openssl x509 -noout -ext subjectAltName -dates"

Conecta con la cara externa del servidor, le pide unos datos mínimos, y luego, empleando otra máquina como punto de salto, conecta con la interior y le pide lo mismo. Es el homínido el que se encarga de verificar, ojitos en mano, que los dos coinciden. 

¿ Ampliable ? Por supuesto. Pero ya es útil.

-- 
Víctor Moral 
https://esferas.org

Comments [Add new one]

Ángel Ortega

Y aquí tenemos una entrada del autor invitado Víctor Moral.

Victor Moral

Se ve bien, es verdad. Tiene futuro el invento.

-- Víctor Moral https://esferas.org