En voulant monter mon propre serveur Passbolt, je me suis appuyé sur l’excellent article de caddy666 : https://aperturezone.fr/posts/passbolt/. Sauf que la version a pas mal évolué depuis, et plusieurs étapes ne correspondaient plus à ce que je voyais à l’écran. J’ai donc décidé de rédiger une mise à jour — ça n’enlève rien à la pertinence de l’article original qui reste une très bonne introduction à Passbolt, mais les manipulations ci-dessous reflètent l’état actuel de la version CE 5.10.0 sur Ubuntu 24.04.


Contexte

L’objectif est de déployer Passbolt Community Edition sur une VM dédiée, avec :

  • Disque chiffré LUKS avec déverrouillage automatique au boot (compatible PRA)
  • Certificat SSL signé par une CA interne Linux (pas de self-signed, pas de Let’s Encrypt)
  • Intégration mail via un serveur SMTP interne
  • Utilisateurs issus de deux domaines AD

La VM est entièrement dédiée à Passbolt — elle ne fait rien d’autre.


Prérequis

  • Ubuntu 24.04 LTS installé (VM fraîche)
  • Accès SSH sur port personnalisé
  • CA interne Linux opérationnelle
  • Serveur SMTP interne joignable
  • Entrée DNS créée pour le FQDN de la VM

1. Installation du repo Passbolt

Le script d’installation a changé de nom récemment (.CE.sh.ce.sh). Il faut désormais vérifier le checksum avant d’exécuter :

curl -LO https://download.passbolt.com/ce/installer/passbolt-repo-setup.ce.sh
curl -LO https://github.com/passbolt/passbolt-dep-scripts/releases/latest/download/passbolt-ce-SHA512SUM.txt
sha512sum -c passbolt-ce-SHA512SUM.txt && sudo bash ./passbolt-repo-setup.ce.sh || echo "Bad checksum. Aborting"

Une fois le repo configuré :

sudo apt install -y passbolt-ce-server

2. Génération du certificat SSL depuis la CA interne

Avant de lancer le wizard d’installation, on génère le certificat SSL depuis la CA interne. Le serveur est Linux avec une CA ECDSA, donc on reste en ECDSA :

# Sur le serveur CA
sudo bash -c 'cat > /tmp/passbolt-ext.cnf <<EOF
[ext]
subjectAltName=DNS:monserveur.mondomaine.local
basicConstraints=CA:FALSE
EOF'

sudo openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes \
  -keyout /etc/cert/myCA/monserveur.mondomaine.local.key \
  -out /etc/cert/myCA/monserveur.mondomaine.local.csr \
  -subj "/C=FR/ST=France/L=Paris/O=MonOrg/CN=monserveur.mondomaine.local"

sudo openssl x509 -req \
  -in /etc/cert/myCA/monserveur.mondomaine.local.csr \
  -CA /etc/cert/myCA/ca.cert.pem \
  -CAkey /etc/cert/myCA/private/ca.key.pem \
  -CAcreateserial \
  -out /etc/cert/myCA/monserveur.mondomaine.local.crt \
  -days 3650 -sha256 \
  -extfile /tmp/passbolt-ext.cnf \
  -extensions ext

Copie des fichiers vers la VM Passbolt (port SSH personnalisé) :

sudo scp -P XXXXX /etc/cert/myCA/monserveur.mondomaine.local.crt user@monserveur:/tmp/
sudo scp -P XXXXX /etc/cert/myCA/monserveur.mondomaine.local.key user@monserveur:/tmp/
sudo scp -P XXXXX /etc/cert/myCA/ca.cert.pem user@monserveur:/tmp/

Sur la VM Passbolt, on prépare les fichiers et on crée le fullchain :

sudo mkdir -p /etc/ssl/passbolt
sudo mv /tmp/monserveur.mondomaine.local.crt /etc/ssl/passbolt/
sudo mv /tmp/monserveur.mondomaine.local.key /etc/ssl/passbolt/
sudo mv /tmp/ca.cert.pem /etc/ssl/passbolt/

sudo cat /etc/ssl/passbolt/monserveur.mondomaine.local.crt /etc/ssl/passbolt/ca.cert.pem \
  | sudo tee /etc/ssl/passbolt/fullchain.pem

sudo chmod 640 /etc/ssl/passbolt/monserveur.mondomaine.local.key
sudo chown root:www-data /etc/ssl/passbolt/monserveur.mondomaine.local.key

3. Installation interactive

Le wizard se lance pendant l’apt install. Voici les réponses attendues :

Question Réponse
Configurer MySQL/MariaDB ? Oui
MySQL root user root
MySQL root password (vide sur installation fraîche)
User BDD Passbolt (nom de votre choix)
Password user BDD (mot de passe solide, éviter ' " @ # % \ /)
Nom de la BDD passbolt
Configurer Nginx ? Oui
Type SSL manual
Domaine monserveur.mondomaine.local
SSL fullchain /etc/ssl/passbolt/fullchain.pem
SSL key /etc/ssl/passbolt/monserveur.mondomaine.local.key

Note : Le user root MySQL n’est pas le même que le root système. Sur une installation fraîche Ubuntu/Debian, MariaDB/MySQL utilise l’authentification par socket Unix — le mot de passe root est donc vide et accessible uniquement en sudo.


4. Le wizard web

Une fois l’installation terminée, on accède à https://monserveur.mondomaine.local :

Passbolt - Page d’accueil avant configuration

Le wizard vérifie l’environnement :

Passbolt - System check

Trois verts — environment, GPG et SSL sont OK. On peut démarrer.

Base de données

Passbolt - Configuration BDD

Renseigner localhost, port 3306, le user et le mot de passe BDD définis pendant l’install, et le nom de la base passbolt.

Clé OpenPGP serveur

Passbolt - Server keys

C’est la clé GPG du serveur Passbolt lui-même, utilisée pour chiffrer les données. Elle est distincte des clés des utilisateurs. Renseigner un nom et une adresse mail pour le serveur.

Options

Passbolt - Options

L’URL de base est pré-remplie avec le domaine saisi pendant l’install. Laisser Force SSL: Yes.

Configuration mail

Passbolt - SMTP

Configuration pour un serveur SMTP interne sans authentification :

Champ Valeur
Sender name Nom de votre organisation
Sender email passbolt@mondomaine.local
SMTP host FQDN du serveur mail interne
Use TLS No
Port 25
Authentication method None

Premier utilisateur admin

Passbolt - First user

Le username doit être une adresse mail valide et accessible — Passbolt va y envoyer le lien d’invitation pour finaliser le compte.


5. Installation de l’extension navigateur

Passbolt - Extension requise

Passbolt ne fonctionne pas sans l’extension navigateur. C’est elle qui gère la clé GPG personnelle côté client. Elle est disponible sur le Chrome Web Store et fonctionne aussi sur Brave, Edge, et autres navigateurs Chromium.

Passbolt - Extension Chrome Web Store


6. Finalisation du compte admin

Une fois l’extension installée, l’invitation reçue par mail permet de finaliser le compte :

Choix de la phrase de passe :

Passbolt - Phrase de passe

C’est la seule phrase de passe à retenir. Elle protège la clé GPG privée de l’utilisateur. Choisir quelque chose de solide mais mémorisable.

Kit de récupération :

Passbolt - Kit de récupération

Le kit de récupération contient la clé privée GPG. À stocker en lieu sûr — c’est le seul moyen de récupérer l’accès en cas de perte de la phrase de passe ou de changement de machine.

Jeton de sécurité anti-phishing :

Passbolt - Jeton de sécurité

Passbolt génère un jeton visuel (couleur + 3 lettres) affiché à chaque fois que la phrase de passe est demandée. Permet de vérifier que le formulaire provient bien de votre instance Passbolt et pas d’un site de phishing.

Connexion :

Passbolt - Login


7. Passbolt opérationnel

Passbolt - Interface principale

L’instance est opérationnelle. Il ne reste plus qu’à inviter les autres utilisateurs depuis Administration → Utilisateurs.


Points d’attention

La synchro LDAP/AD (Répertoire d'utilisateurs) est une fonctionnalité Pro — non disponible en CE. En CE, les utilisateurs sont invités manuellement via l’interface admin. Chaque utilisateur invité reçoit un mail pour configurer son compte et sa clé GPG.

Le kit de récupération est critique. Sans lui, un utilisateur qui perd sa phrase de passe ne peut plus accéder à ses mots de passe. À sauvegarder hors de la VM.


Pour finir

L’installation de Passbolt CE est relativement simple grâce au script officiel. L’intégration avec une CA interne Linux demande un peu plus de travail mais donne un résultat propre — pas de warning SSL, pas de certificat auto-signé, confiance gérée via la GPO de déploiement de la CA racine.