linux_ejbca

Ceci est une ancienne révision du document !


EJBCA - Installation d'une infrastructure à clés publiques (PKI)

CréationNicolas THOREZ 2024/03/19 10:29

Une infrastructure à clés publiques ou PKI (Public Key Infrastructure) est un ensemble de services permettant de gérer des clés publiques et se faisant, permettant l'authentification d'un service, système ou utilisateur.

Réf : Wikipédia

Dans cette procédure, nous allons voir la mise en place d'une PKI via le logiciel EJBCA (Enterprise JavaBeans Certificate Authority) en version Community.

Droits

Cette procédure nécessite des droits root. La plus grande prudence est donc requise.

Réalisation

Cette procédure a été réalisée et testé sur un VM en Debian 11, hébergée sur un hyperviseur Proxmox 8.0.4.

Réf : EJBCA

  • On installe les paquets de prérequis :

apt install -y ca-certificates curl

  • On ajoute le dépôt de docker :

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null

  • On installe les paquets nécessaires :

apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

  • On créé et on va dans l'arborescence du projet :

mkdir -p /opt/ejbca/containers/datadbdir
cd /opt/ejbca/containers/

  • On crée le fichier de configuration pour le docker :

nano docker-compose.yml

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=foo123
      - MYSQL_DATABASE=ejbca
      - MYSQL_USER=ejbca
      - MYSQL_PASSWORD=ejbca
    volumes:
      - ./datadbdir:/var/lib/mysql:rw
  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
    ports:
      - "80:8080"
      - "443:8443"
  • On prendra soin de personnaliser :
    • MYSQL_ROOT_PASSWORD :Le mot de passe pour la base de données de la PKI.
    • MYSQL_USER : Le nom du compte MySQL
    • MYSQL_PASSWORD : Le mot de passe pour l'Utilisateur MySQL
    • hostname : Le nom de l'instance. Ce nom sera aussi le nom de domaine pour les interface web.
  • Une fois enregistré, on peut lancer la création du docker :

docker compose up -d

  • La commande suivante permet de voir l'état d'initialisation de l'instance. Une fois terminée, les logs affiche l'adresse, et les authentifiants temporaires pour la configuration via l'interface web :

<sxh bash>docker compose logs -f</bash>

  • Retour console :
...
Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • linux_ejbca.1710842660.txt.gz
  • Dernière modification : 2024/03/19 11:04
  • de nekan