Guide de déploiement

Migrer de 1Password vers Vaultwarden : la procédure complète

Déployer sur un VPS Cloud →

Tutoriel

Sécurité & Monitoring

Migrer de 1Password vers Vaultwarden : la procédure complète

La hausse tarifaire de 1Password en 2026 a conduit beaucoup de développeurs à reconsidérer leur gestionnaire de mots de passe. Vaultwarden offre une alternative sérieuse : le même chiffrement AES-256 côté client que Bitwarden.com, tous les clients officiels Bitwarden compatibles, et un serveur écrit en Rust, bien plus léger que le serveur officiel de Bitwarden. Ce guide couvre la migration complète — export 1PUX, import Bitwarden CLI, déploiement Vaultwarden — sans perdre un seul identifiant.

9 min de lecture7 étapes
Sommaire· Pourquoi migrer maintenant1/10
  1. 01Pourquoi migrer maintenant
  2. 02Ce que Vaultwarden apporte à un développeur
  3. 03Prérequis avant de commencer
  4. 04Étape 1 — Exporter votre coffre 1Password
  5. 05Étape 2 — Importer via Bitwarden CLI
  6. 06Étape 3 — Vaultwarden sur votre VPS
  7. 071Password vs Bitwarden.com vs Vaultwarden
  8. 08Sauvegarder et tester la restauration
  9. 09Dépannage — erreurs fréquentes
  10. 10Quitter 1Password en confiance

Pourquoi migrer maintenant

En 2026, l'abonnement individuel 1Password facturé annuellement est passé de 35,88 $/an à 47,88 $/an, soit une hausse de 33 %. En janvier 2026, Bitwarden.com avait déjà relevé son plan Premium de 10 $ à 19,80 $ par an — près du double. Ces deux hausses rapprochées ont rendu le self-hosting économiquement évident pour les développeurs qui disposent déjà d'un VPS : Vaultwarden, écrit en Rust et bien plus léger que le serveur officiel de Bitwarden, y tourne sans surcoût logiciel, pour un coût fixe mensuel correspondant à celui d'un VPS d'entrée de gamme.

L'objection la plus courante — « administrer soi-même son gestionnaire de mots de passe, c'est risqué » — ne tient pas face à l'architecture de Vaultwarden. Le chiffrement se fait entièrement côté client, en AES-256-CBC avec dérivation de clé PBKDF2 ou Argon2id : le serveur ne voit jamais vos mots de passe en clair, même en cas de compromission complète de la machine.

Ce que Vaultwarden apporte à un développeur

  • Chiffrement client-side AES-256-CBC — vos mots de passe ne quittent jamais votre appareil en clair, quelle que soit la configuration serveur.
  • Compatibilité totale avec tous les clients officiels Bitwarden : extensions navigateur, apps iOS, Android, desktop et CLI, sans modification.
  • Empreinte mémoire légère — écrit en Rust, Vaultwarden est conçu pour l'auto-hébergement, là où le serveur officiel de Bitwarden, plus gourmand en ressources, ne convient pas.
  • Coût fixe — un VPS 1 vCPU / 512 Mo suffit pour un usage personnel ou une petite équipe, sans abonnement SaaS variable.
  • Contrôle total des données — sauvegarde, restauration, choix du datacenter et durée de rétention restent entre vos mains.
  • Accès multi-profils et organisations — Vaultwarden supporte la gestion d'organisations et le partage de coffres comme Bitwarden.com.
  • Mises à jour découplées — vous choisissez quand mettre à jour le serveur ; les clients officiels Bitwarden gèrent leur propre cycle de vie.

Prérequis avant de commencer

Avant de lancer la migration, vérifiez que vous disposez de l'ensemble des éléments suivants.

Côté serveur : un VPS avec au moins 1 vCPU et 512 Mo de RAM, Docker et Docker Compose installés, un nom de domaine pointant sur l'IP du serveur, et un reverse proxy (Caddy ou Nginx) configuré pour terminer TLS. Le déploiement de Vaultwarden lui-même est couvert dans l'article Déployer Vaultwarden sur VPS — ce guide part du principe que votre instance est déjà en ligne et accessible en HTTPS.

Côté poste local : 1Password v8 ou supérieur installé (nécessaire pour exporter en .1pux), Bitwarden CLI (bw) installé via npm (npm install -g @bitwarden/cli) ou le binaire officiel, et Node.js ≥ 22 si vous installez via npm.

Étape 1 — Exporter votre coffre 1Password

  1. Ouvrir le dialogue d'export

    Sur macOS, ouvrez 1Password et allez dans Fichier → Exporter. Sur Windows, cliquez sur l'ellipse (…) en haut de la barre latérale, puis sur Exporter. Sélectionnez le compte à exporter — si vous avez plusieurs coffres, vous pouvez exporter l'intégralité du compte en une seule opération.

  2. Choisir le format 1PUX

    Dans la boîte de dialogue, saisissez votre mot de passe de compte 1Password pour confirmer l'opération. Sélectionnez ensuite le format 1Password Unencrypted Export (.1pux). Ce format JSON préserve l'intégralité de la structure — champs personnalisés, notes sécurisées, identités, mots de passe d'application — contrairement au CSV, qui n'exporte que les éléments Identifiant et Mot de passe, sans champs personnalisés.

  3. Enregistrer le fichier en lieu sûr

    Choisissez un dossier local chiffré (FileVault ou BitLocker activé) pour stocker le fichier .1pux. Ce fichier contient tous vos secrets en clair structuré — ne le laissez pas traîner dans un dossier de téléchargements ni ne l'envoyez par e-mail. Une fois la migration terminée, supprimez-le de façon sécurisée.

Étape 2 — Importer via Bitwarden CLI

  1. Pointer le CLI vers votre instance Vaultwarden

    Par défaut, bw pointe vers bitwarden.com. Redirigez-le vers votre instance avant toute autre opération :

    bw config server https://vault.votre-domaine.com

    Vérifiez la réponse : le CLI doit afficher « Saved setting config. »

  2. Se connecter et déverrouiller le coffre

    Authentifiez-vous avec vos identifiants Vaultwarden (email + mot de passe maître créés à la configuration initiale) :

    bw login [email protected]

    Le CLI vous demandera votre mot de passe maître de façon interactive. Une fois connecté, déverrouillez le coffre et exportez la clé de session :

    export BW_SESSION=$(bw unlock --raw)

    Toutes les commandes suivantes utilisent implicitement cette variable pour accéder au coffre déchiffré.

  3. Lancer l'import du fichier .1pux

    Importez votre export 1Password avec le format 1password1pux :

    bw import 1password1pux /chemin/vers/export.1pux

    Le CLI répond Imported /chemin/vers/export.1pux ; s'il a dû écarter des éléments, il les liste avec la raison. Si votre coffre 1Password contenait plusieurs coffres (vaults), tous sont importés dans un seul coffre Bitwarden — les dossiers sont créés à partir du premier tag de chaque élément, pas à partir des coffres 1Password.

    Si l'import échoue, vérifiez que le fichier porte bien l'extension .1pux (le CLI ne décompresse l'archive que sous cette extension) et que vous utilisez une version récente du CLI (bw --version).

  4. Vérifier l'import dans un client Bitwarden

    Ouvrez l'extension Bitwarden de votre navigateur ou l'app desktop, pointez le serveur vers votre instance Vaultwarden, puis connectez-vous. Parcourez vos coffres et vérifiez un échantillon de mots de passe — en particulier les entrées avec des champs personnalisés, les notes sécurisées et les identités, qui sont les plus susceptibles de varier selon les gestionnaires. Les pièces jointes ne sont pas importées : ajoutez-les à la main. Les passkeys ne sortent pas d'un export 1Password de bureau : recréez-les sur chaque site.

Étape 3 — Vaultwarden sur votre VPS

Si votre instance Vaultwarden n'est pas encore déployée, suivez le guide Déployer Vaultwarden sur VPS qui couvre l'intégralité de la configuration Docker. En résumé, trois points sont non-négociables avant d'importer quoi que ce soit :

HTTPS obligatoire. Les clients Bitwarden refusent de se connecter à un serveur sans TLS valide. Caddy ou Nginx avec Let's Encrypt (certbot) suffisent ; vérifiez que votre domaine est accessible en https:// avant de configurer le CLI.

Variable DOMAIN correcte. Dans votre docker-compose.yml, la variable DOMAIN=https://vault.votre-domaine.com doit correspondre exactement à l'URL que vous avez déclarée dans bw config server — sans slash final.

Sauvegarde du volume avant import. L'import écrit dans la base SQLite de Vaultwarden (/data/db.sqlite3). Faites un snapshot de votre volume Docker avant de lancer bw import, pour pouvoir revenir en arrière si l'import se passe mal.

Inscriptions fermées ensuite. Une fois votre compte créé, passez SIGNUPS_ALLOWED=false et recréez le conteneur : sinon, toute personne qui atteint l'instance peut y ouvrir un compte. Si vous activez la page d'administration, ADMIN_TOKEN doit être un hachage Argon2 généré par vaultwarden hash, pas un jeton en clair.

1Password vs Bitwarden.com vs Vaultwarden

Faites défiler le tableau

Critère1PasswordBitwarden.comVaultwarden (self-hosted)
Coût annuel (individuel)47,88 $/an depuis 202619,80 $/an depuis janv. 2026 (Premium)Coût du VPS uniquement
Contrôle des donnéesServeurs 1PasswordServeurs BitwardenVotre VPS, votre datacenter
ChiffrementAES-256-GCM côté clientAES-256-CBC côté clientAES-256-CBC côté client (identique)
Clients mobiles officielsApps dédiées 1PasswordiOS, Android, desktop, extensionClients Bitwarden officiels, sans modification
Extension navigateurExtension 1PasswordExtension BitwardenExtension Bitwarden (même binaire)
Mises à jourAutomatiques (SaaS)Automatiques (SaaS)Manuelles (vous choisissez le moment)
RAM serveur requiseN/A (SaaS)N/A (SaaS)Faible (serveur léger écrit en Rust)

Sauvegarder et tester la restauration

L'import terminé, mettez en place une sauvegarde automatisée du volume Vaultwarden avant de désactiver votre compte 1Password. Le guide Sauvegardes Restic sur VPS couvre une stratégie 3-2-1 adaptée à Docker : arrêt du conteneur, snapshot du volume, envoi chiffré vers un stockage distant, redémarrage. Testez la restauration sur une machine distincte — pas seulement la présence du fichier de sauvegarde — avant de considérer la migration terminée. Un coffre de mots de passe sans restauration testée n'est pas une sauvegarde.

Dépannage — erreurs fréquentes

Proper importer type required. à l'import. Le format attendu par le CLI est exactement 1password1pux (tout attaché, en minuscules). Vérifiez que vous n'utilisez pas 1password seul ni 1pux — aucun des deux n'est un format de fichier reconnu (l'ancien format 1PIF de 1Password 7 et des versions antérieures s'appelle 1password1pif). Listez les formats disponibles avec bw import --formats | grep 1password.

ERR_CERT_AUTHORITY_INVALID dans les clients. Les clients Bitwarden exigent un certificat TLS signé par une autorité reconnue — un certificat auto-signé n'est accepté que si chaque appareil approuve l'autorité qui l'a émis. Vérifiez que Let's Encrypt a bien émis un certificat pour votre domaine et qu'il n'est pas expiré.

Compte Bitwarden.com existant. Si vous importez depuis un compte Bitwarden.com existant avant de basculer vers Vaultwarden, vos éléments restent chiffrés avec la clé du compte cloud. Après bw config server vers votre instance, recréez un compte local : le CLI ne migre pas la clé de chiffrement entre instances, seules les données en clair transitent via l'import.

L'import s'arrête sur une entrée SSH. Dans certaines versions du CLI, une seule clé SSH non conforme dans le fichier 1pux faisait échouer tout l'import (Failed to parse key, issue bitwarden/clients #20432). Depuis la version 2026.8.0 du CLI (août 2026), l'élément fautif est écarté et listé, et le reste est importé ; recréez cette clé à la main. Mettez à jour avec npm install -g @bitwarden/cli@latest si vous rencontrez ce comportement.

Quitter 1Password en confiance

Une fois l'import vérifié côté Vaultwarden — ouvrez chaque type d'élément (logins, notes, identités, cartes) dans un client Bitwarden et contrôlez un échantillon représentatif — vous pouvez désactiver votre compte 1Password. N'attendez pas l'expiration de votre abonnement pour supprimer le fichier .1pux local : il contient tous vos secrets en clair structuré.

Pour aller plus loin dans la sécurisation de votre infrastructure, les articles Durcissement initial d'un serveur Linux et Passbolt pour une équipe couvrent les étapes suivantes : fermeture des ports, gestion des clés SSH et partage sécurisé en contexte d'équipe.

Un VPS pour faire tourner Vaultwarden

Un VPS ServOrbit avec accès root et IPv4 dédiée suffit pour héberger Vaultwarden à vie. Choisissez votre OS, déployez en quelques minutes.