Ga naar hoofdinhoud

ejbca-ce docker

Docker containers maken aan de hand van "Start out with EJBCA Docker container", maar dan met podman en podman-compose. Voor de docker-compose.yml dit gebruiken:

version: '3'
networks:
access-bridge:
driver: bridge
application-bridge:
driver: bridge
services:
ejbca-database:
container_name: ejbca-database
image: "library/mariadb:latest"
networks:
- application-bridge
environment:
- MYSQL_ROOT_PASSWORD=Verysecurepassword123
- MYSQL_DATABASE=ejbca
- MYSQL_USER=ejbca
- MYSQL_PASSWORD=Verysecurepassword456
volumes:
- ./datadbdir:/var/lib/mysql:rw
restart: unless-stopped
ejbca-node1:
hostname: ejbca-node1
container_name: ejbca
image: keyfactor/ejbca-ce:latest
depends_on:
- ejbca-database
networks:
- access-bridge
- application-bridge
environment:
- DATABASE_JDBC_URL=jdbc:mariadb://ejbca-database:3306/ejbca?characterEncoding=UTF-8
- LOG_LEVEL_APP=INFO
- LOG_LEVEL_SERVER=INFO
- TLS_SETUP_ENABLED=simple
- DATABASE_PASSWORD=Verysecurepassword456
ports:
- "80:8080"
- "443:8443"
restart: unless-stopped

Als je de tekst op de site gebruikt zit er een indentatiefout op regel 22 (container_name: ejbca), dus die kun je het beste verwijderen en opnieuw typen. Je moet de containers maken als root, want een normale gebruiker kan in podman geen webserver aanzetten. De mariadb server geeft exit code 1, /var/lib/mysql in die container heeft namelijk niet de juiste permissies. De mariadb container werkt niet goed met podman (of i.i.g. niet om de juiste permissies in te stellen voor /var/lib/mysql). Dat zegt deze bron ook.

Dus centos docker repo toevoegen en docker-ce downloaden. Je kan je gebruiker aan de docker groep toevoegen zodat je niet sudo hoeft te gebruiken, werkt waarschijnlijk pas na een reboot. Hierbij hetzelfde compose-bestand gebruiken.

Checken met docker ps naar welke poort de web interface gaat. Dan met firewall-cmd een port-forwarding regel instellen (bron), bijvoorbeeld zo:

sudo firewall-cmd --add-forward-port=port=8443:proto=tcp:toport=443

sudo firewall-cmd --add-masquerade

Dit hoeft niet vanwege een bug tussen docker en firewalld. De eerste poort bij docker * -p <poort>:<poort> * of vergelijkbaar in het compose-bestand wordt hierdoor opengezet naar het host netwerk.

Check of je vanaf je client bij de EJBCA Administration kan.

De mariadb container ingaan met docker exec -it ejbca-database /bin/bash en /usr/bin/mariadb-secure-installation uitvoeren. De stappen doorlopen en de containers herstarten.

Verbinden op https://192.168.1.121/ejbca/adminweb/ of soortgelijk en de stappen doorlopen. Het SuperAdmin-certificaat opslaan op een veilige plek, bijvoorbeeld een versleutelde schijf(kopie). Daarna door met "Create your first Root CA using EJBCA".