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 :
Le wizard vérifie l’environnement :
Trois verts — environment, GPG et SSL sont OK. On peut démarrer.
Base de données
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
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
L’URL de base est pré-remplie avec le domaine saisi pendant l’install. Laisser Force SSL: Yes.
Configuration mail
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
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 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.
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 :
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 :
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 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 :
7. Passbolt opérationnel
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.