Ce petit tutoriel initié à l’époque par moi même sur Wareziens et mis à jour ici, vous permettra d’auto héberger la solution Bitwarden.
Personnellement, je la trouve très bien mais l’idée de laisser mes mots de passes chez eux ou qui que ce soit me rebute. Ce pourquoi j’utilisais KeepassXC mais ça c’était avant
Vous pourrez profiter de la solution en local sans passer par les serveurs de Bitwarden. Le compte créé dans ce tuto est simplement local pour se connecter à l’application.
Je me concentre ici sur la version Windows mais il est tout à fait possible de le faire sous Linux (peut être dans un prochain tuto qui sait ?)
Créez un utilisateur et un répertoire Bitwarden (ou autre) à partir desquels initier l’installation.
Ouvrez PowerShell en tant qu’administrateur et créez un utilisateur local Bitwarden en exécutant les commandes suivantes:
$Password = Read-Host -AsSecureString
New-LocalUser "Bitwarden" -Password $Password -Description "Bitwarden Local Admin"
mkdir C:\Bitwarden
Use WSL2 instead of Hyper-V (recommanded)
pendant l’installation.net localgroup docker-users "Bitwarden" /ADD
Cette étape n’est pas obligatoire et vous pouvez utiliser localhost ou 127.0.0.1 lors de l’installation à la place d’un nom de domaine avec un certificat autosigné mais sachez que l’application Desktop ne sera pas utilisable, juste la GUI via le serveur web.
C:\Windows\System32\drivers\etc
, par exemple ici mybitwarden.fr
:127.0.0.1 mybitwarden.fr
L’installeur par défaut utilise Let’s Encrypt pour les certificats et cela ncécéssite un NDD valide, ce qui n’est pas notre cas, nous allons donc utiliser mkcert
https://github.com/FiloSottile/mkcert
https://scoop.sh
https://chocolatey.org/install
https://scoop.sh
mkcert -install
– Cela va installer l’autorité de certification dans la MMC certmgr.msc :
La clé et le certificat CA de mkcert est par défaut stocker dans le appdata de l’utilisateur : C:\Users\votre_utilisateur\AppData\Local\mkcert
– Ensuite, on va générer notre certificat signé via notre autorité de certification locale pour notre fake domain.
Il faut absolument créer un certificat SAN avec plusieurs entrées de nom alternatif du sujet (Subject Alternative Name - SAN) sinon l’apllication desktop ne fonctionnera pas.
cd C:\Users\votre_utilisateur\AppData\Local\mkcert
mkcert mybitwarden.fr "*.mybitwarden.fr" mybitwarden.dev localhost 127.0.0.1 ::1
Nous les utiliserons plus tard dans ce tutoriel.
Démarrer/Éxécuter/certmgr.msc
. Placez-le dans le magasin Autorités de certification Racines de confiance
:INSTALLATION ID: xxxxxxx-xxxxxxxx-xxxxxxx
INSTALLATION KEY: xxxxxxxxx
cd C:\Bitwarden
Invoke-RestMethod -OutFile bitwarden.ps1 -Uri "https://func.bitwarden.com/api/dl/?app=self-host&platform=windows"
Set-ExecutionPolicy –ExecutionPolicy unrestricted
Get-ExecutionPolicy
.\bitwarden.ps1 -install
à vous d’adapter selon vos données et besoin
Enter the domain name for your Bitwarden instance : mybitwarden.fr
Do you want to use Let's Encrypt to generate a free SSL Certificate? y/n): n
Enter the database name for your Bitwarden instance (ex. vault): : mybitwarden
Enter your installation ID : Votre ID d'installation récupéré plus haut
Enter your installation key: Votre clé d'installation récupéré plus haut
Enter your region (US/EU) [US]: EU
Do you have a SSL certificate to use? (y/N): N
Do you want to generate a self-signed SSL certificate? (y/N): y
PS C:\Bitwarden> .\bitwarden.ps1 -install
_ _ _ _
| |__ (_) |___ ____ _ _ __ __| | ___ _ __
| '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \
| |_) | | |_ \ V V / (_| | | | (_| | __/ | | |
|_.__/|_|\__| \_/\_/ \__,_|_| \__,_|\___|_| |_|
Open source password management solutions
Copyright 2015-2024, 8bit Solutions LLC
https://bitwarden.com, https://github.com/bitwarden
===================================================
bitwarden.ps1 version 2024.2.0
Docker version 25.0.2, build 29cf629
Docker Compose version v2.24.3-desktop.1
(!) Enter the domain name for your Bitwarden instance (ex. bitwarden.example.com): mybitwarden.fr
(!) Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n): n
(!) Enter the database name for your Bitwarden instance (ex. vault): : mybitwarden
2024.2.0: Pulling from bitwarden/setup
70ba6f391a98: Pull complete
373a7eec07ac: Pull complete
8b82146158e3: Pull complete
75f74dbda27f: Pull complete
44a4352dce9a: Pull complete
acb82244c16a: Pull complete
d64ab9a0fbf5: Pull complete
c3ecb6f4e4ca: Pull complete
f5a1fec04030: Pull complete
650a4f6bbb20: Pull complete
Digest: sha256:61accdd92a6b8819194610e4691cd0ee1da6c5b4ae58e63fc720da6135bf01da
Status: Downloaded newer image for bitwarden/setup:2024.2.0
docker.io/bitwarden/setup:2024.2.0
What's Next?
View a summary of image vulnerabilities and recommendations → docker scout quickview bitwarden/setup:2024.2.0
(!) Enter your installation id (get at https://bitwarden.com/host): XXXXXXXXXXXXX-XXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXX
(!) Enter your installation key: XXXXXXXXXXXXXXXXXXXXXX
(!) Enter your region (US/EU) [US]: EU
(!) Do you have a SSL certificate to use? (y/N): N
(!) Do you want to generate a self-signed SSL certificate? (y/N): y
Generating self signed SSL certificate.
Generating a RSA private key
........................................................................................................................................................................................................................................................................................................................................................................++++
.................................++++
writing new private key to '/bitwarden/ssl/self/127.0.0.1/private.key'
-----
Generating key for IdentityServer.
Generating a RSA private key
......................................++++
.......................++++
writing new private key to 'identity.key'
-----
!!!!!!!!!! WARNING !!!!!!!!!!
You are using an untrusted SSL certificate. This certificate will not be
trusted by Bitwarden client applications. You must add this certificate to
the trusted store on each device or else you will receive errors when trying
to connect to your installation.
Building nginx config.
Building docker environment files.
Building docker environment override files.
Building FIDO U2F app id.
Building docker-compose.yml.
Installation complete
If you need to make additional configuration changes, you can modify
the settings in `.\bwdata\config.yml` and then run:
`.\bitwarden.ps1 -rebuild` or `.\bitwarden.ps1 -update`
Next steps, run:
`.\bitwarden.ps1 -start`
Si vous voulez utilser des certificats Let’s Encrypt, voir ici: https://bitwarden.com/help/certificates/
C:\Bitwarden\bwdata\ssl\self\mybitwarden.fr
. Copiez aussi le certificat CA au même endroit :C:\Bitwarden\bwdata\config.yml
en indiquant les chemins de certificats et clé comme ceci :ssl_certificate_path: /etc/ssl/self/mybitwarden.fr/mybitwarden.fr+5.pem
ssl_key_path: /etc/ssl/self/mybitwarden.fr/mybitwarden.fr+5-key.pem
ssl_ca_path: /etc/ssl/self/mybitwarden.fr/rootCA.pem
.\bitwarden.ps1 -rebuild
.\bitwarden.ps1 –start
docker ps
ou par l’application Docker Desktop :
Bravo! Bitwarden est maintenant accessible sur https://127.0.0.1
Si tout se passe bien, vous n’aurez pas d’erreur de certifcat. Il ne vous reste plus qu’à créer un compte et de vous loguer sur l’interface web.
https://addons.mozilla.org/fr/firefox/addon/bitwarden-password-manager/
https://chromewebstore.google.com/detail/bitwarden-gestion-des-mot/nngceckbapebfimnlniiiahkandclblb
url du serveur : https://127.0.0.1
url du serveur du coffre web : https://127.0.0.1
./bwdata/config.yml
pour générer les assets nécessaires à l’installation.Une fois modifié, vous pouvez exécuter la commande suivante pour appliquer les changements :
.bitwarden.ps1 -rebuild
Vous pouvez trouvez le fichier d’environnement pour ses paramètres dans ./bwdata/env/global.override.env
Exemples:
globalSettings__yubico__clientId=294620155globalSettings__yubico__key=owdez88RdxVZuGbZ4fv
globalSettings__mail__smtp__host=smtp.sendgrid.net
globalSettings__mail__smtp__username=apikey
globalSettings__mail__smtp__password=SG.YOUR.API_KEY
globalSettings__mail__smtp__ssl=true
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__useDefaultCredentials=false
Le script de Bitwarden possède les commandes suivantes:
install : démarrer l'installation.
start: Démarrer tous les conteneurs
restart: Redmearer tous les conteneurs (tout comme start).
stop: Arretez tous les conteneurs
updatedb: mettre à jour/initialiser la base de données
update: Mettre à jour tous les conteneurs et la base de données
updateself: Mettre à jour le script d'installation de Bitwarden
rebuild: Reconstruire les assets d'installation depusi le fchier config.yml.
Bonne installation
Ce tutoriel sera mis à jour pour la version Linux dès que j’aurais une VM sous la main !