Contenedor Docker para crear CA y Certificados SSL a demanda
- Se debe tener instalado Docker y Docker-compose
Esta imagen lee un par de variables de entorno que permite encadenar el arranque de los containers
DOCKER_NAME : Nombre del container, ejemplo "mi_aplicacion"
DOCKER_WAIT_FOR : Nombre del container al cual esperar por ejemplo "otra_aplicacion"
Para que esto funcione los containers involucrados deben compartir un volumen comun publicado en /var/local/docker-data/containers-status
.
Se leen del archivo docker.env
que es una copia de docker-template.env
con su contenido modificado. A continuación detallo las mas importantes y su función:
CA_PWD
yCA_INT_PWD
: Definen los passwords para crear las CA'sLISTA_SERVER
: Define una lista de dominios para los que se crearan certificadosLISTA_CLIENTES
: Define una lista de nombres a los que se les crearan certificados para actuar como clientesDOCKER_WEB_SCRIPT
: Path a un script ejecutado dentro del contenedor como último paso del ENTRYPOINT
También existen otras variables de entorno que permiten modificar la información de los certificados, su período de validez, etc, para mayor información visualizar el archivo docker-template.env
Existe un archivo llamado CA_INITIALIZED
que se genera al finalizar la inicialización, la no existencia del mismo eliminará el contenido de la CA intermedia y los certificados que haya generado.
La CA root, queda por si es externa al container.
Hay archivos en las carpetas que contienen configuraciones básicas para openssl y scripts de generación de certificados, ante cualquier cambio a estos archivos (o al Dockerfile), ejecutar lo siguiente para re-generar la imagen
docker build -t="siutoba/docker-certs" .
Una vez hecho el push a github automáticamente se va a actualizar la imagen en el índice de hub.docker.com