Gestor de Contraseñas · 13 min read · Jan 12, 2026

Instalar y Configurar Passbolt Team Password Manager en Ubuntu 20.04

Passbolt es un gestor de contraseñas gratuito, de código abierto, autoalojado y extensible que te ayuda a compartir y almacenar de forma segura credenciales de inicio de sesión, como la contraseña del enrutador, sitio web, Wi-Fi y más. Es diferente de otros gestores de contraseñas. Está enfocado en el uso en equipo en lugar de en individuos. Está disponible en edición comunitaria y de pago. Ofrece muchas características, algunas de ellas se enumeran a continuación:

  • Proporciona extensiones para Firefox y Google Chrome.
  • Usa OpenPGP para cifrar la contraseña.
  • Interfaz web simple y fácil de usar.
  • Permite importar y exportar contraseñas.
  • Permite agregar credenciales de inicio de sesión manualmente.

En este tutorial, explicaremos cómo instalar el gestor de contraseñas Passbolt con Apache y Let’s Encrypt en Ubuntu 20.04.

Requisitos Previos

  • Un servidor que ejecute Ubuntu 20.04.
  • Un nombre de dominio válido apuntado a la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Instalar Servidor LAMP

Primero, necesitarás instalar el servidor Apache y MariaDB en tu sistema. Puedes instalarlos con el siguiente comando:

apt-get install apache2 mariadb-server -y

Después de instalar los paquetes anteriores, también necesitarás instalar PHP y otros paquetes requeridos en tu sistema.

Por defecto, Ubuntu 20.04 viene con PHP7.4 en su repositorio predeterminado. Sin embargo, Passbolt no es compatible con PHP7.4. Así que necesitarás agregar el repositorio de PHP en tu sistema.

Primero, instala los paquetes requeridos con el siguiente comando:

apt-get install software-properties-common gnupg -y

A continuación, agrega el repositorio de PHP con el siguiente comando:

add-apt-repository ppa:ondrej/php --yes

Luego, instala la versión de PHP 7.3 con Composer y otras extensiones requeridas con el siguiente comando:

apt-get install php7.3 php7.3-mysql libapache2-mod-php7.3 php7.3-intl php7.3-mbstring php7.3-gd php7.3-imagick php7.3-xml php7.3-common php7.3-curl php7.3-json php7.3-ldap php7.3-gnupg zlib1g unzip git composer curl -y

Una vez que todos los paquetes estén instalados, puedes proceder al siguiente paso.

Configurar Base de Datos MariaDB

Primero, necesitarás asegurar la instalación de MariaDB y establecer la contraseña de root de MariaDB. Puedes hacerlo con el siguiente comando:

mysql_secure_installation

Este script establecerá la contraseña de root de MariaDB, eliminará usuarios anónimos, deshabilitará el inicio de sesión remoto de root y eliminará la base de datos de prueba y el acceso a ella, como se muestra a continuación:

Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Una vez que MariaDB esté asegurado, inicia sesión en el shell de MariaDB con el siguiente comando:

mysql -u root -p

Proporciona tu contraseña de root cuando se te solicite, luego crea una base de datos y un usuario para Passbolt con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE passboltdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
MariaDB [(none)]> GRANT ALL on passboltdb.* to passbolt@localhost identified by 'password';

A continuación, actualiza los privilegios y sal de MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;  
MariaDB [(none)]> EXIT;

Una vez que hayas terminado, puedes proceder al siguiente paso.

Descargar y Configurar Passbolt

En esta sección, aprenderemos cómo descargar y configurar Passbolt:

Descargar Passbolt

Primero, descarga la última versión de Passbolt en el directorio raíz web de Apache con el siguiente comando:

mkdir /var/www/passbolt  
git clone https://github.com/passbolt/passbolt_api.git /var/www/passbolt

Una vez descargado, cambia la propiedad de Passbolt a www-data con el siguiente comando:

chown -R www-data:www-data /var/www/

A continuación, cambia al directorio de Passbolt e instala las dependencias requeridas con el siguiente comando:

cd /var/www/passbolt  
sudo -u www-data composer install --no-dev

Deberías obtener la siguiente salida:

> Cake\Composer\Installer\PluginInstaller::postAutoloadDump
9 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
thadafinser/package-info:  Generating class...
thadafinser/package-info: ...generating class
> App\Console\Installer::postInstall
Created `config/app.php` file
Created `/var/www/passbolt/logs` directory
Created `/var/www/passbolt/tmp/cache/models` directory
Created `/var/www/passbolt/tmp/cache/persistent` directory
Created `/var/www/passbolt/tmp/cache/views` directory
Created `/var/www/passbolt/tmp/sessions` directory
Created `/var/www/passbolt/tmp/tests` directory
Set Folder Permissions ? (Default to Y) [Y,n]? Y

Escribe Y y presiona Enter para establecer los permisos de la carpeta.

Generar Clave OpenPGP

A continuación, necesitarás generar una clave OpenPGP para autenticar y firmar solicitudes JSON salientes. Puedes generarla con el siguiente comando:

cd /var/www/passbolt  
gpg --full-generate-key

Durante el proceso, se te pedirá la frase de contraseña, simplemente presiona la tecla Tab, selecciona OK y confirma que no deseas establecerla, porque el módulo php-gnupg no admite el uso de frases de contraseña en este momento.

gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
  (14) Existing key from card
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: Hitesh
Email address: [email protected]
Comment: Hi
You selected this USER-ID:
    "Hitesh (Hi) <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 2DA8E7FB8E23B2FD marked as ultimately trusted
gpg: directory '/root/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/9622291A72D99A4EC78ABCB92DA8E7FB8E23B2FD.rev'
public and secret key created and signed.

pub   rsa4096 2020-07-25 [SC]
      D2394A45B7CBBAB7F00CC79B23D4750486780854
uid                      Hitesh (Hi) <[email protected]>
sub   rsa4096 2020-07-25 [E]

Por favor, recuerda la huella digital de la clave pública anterior, ya que será necesaria más adelante en la configuración.

A continuación, exporta la clave pública y privada al directorio ‘/var/www/passbolt’ con los siguientes comandos:

gpg --armor --export-secret-keys [email protected] > /var/www/passbolt/config/gpg/serverkey_private.asc  
gpg --armor --export [email protected] > /var/www/passbolt/config/gpg/serverkey.asc

A continuación, necesitarás inicializar el llavero de la clave gpg para el usuario de Apache. Puedes hacerlo con el siguiente comando:

sudo su -s /bin/bash -c "gpg --list-keys" www-data

Deberías obtener la siguiente salida:

gpg: directory '/var/www/.gnupg' created
gpg: keybox '/var/www/.gnupg/pubring.kbx' created
gpg: /var/www/.gnupg/trustdb.gpg: trustdb created

Configurar Passbolt

Primero, copia el archivo de configuración de muestra de Passbolt con el siguiente comando:

cp /var/www/passbolt/config/passbolt{.default,}.php

A continuación, edita el archivo de configuración de Passbolt con el siguiente comando:

nano /var/www/passbolt/config/passbolt.php

Define tu fullbaseurl, base de datos y huella digital de la clave pública como se muestra a continuación:

        'fullBaseUrl' => 'https://passbolt.linuxbuz.com',
    // Configuración de la base de datos.

    'Datasources' => [
        'default' => [
            'host' => 'localhost',
            //'port' => 'non_standard_port_number',
            'username' => 'passbolt',
            'password' => 'password',
            'database' => 'passboltdb',
            'serverKey' => [
            // Huella digital de la clave privada del servidor.
            'fingerprint' => 'D2394A45B7CBBAB7F00CC79B23D4750486780854',
            'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
            'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',

Guarda y cierra el archivo cuando hayas terminado.

Si no recuerdas la huella digital de tu clave pública, puedes obtenerla con el siguiente comando:

gpg --list-keys --fingerprint | grep -i -B 2 [email protected]

Deberías obtener la siguiente salida:

gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   rsa4096 2020-07-25 [SC]
      D239 4A45 B7CB BAB7 F00C  C79B 23D4 7504 8678 0854
uid           [ultimate] Hitesh (Hi) <[email protected]>

Configurar Apache para Passbolt

A continuación, necesitarás crear un archivo de configuración de host virtual de Apache para Passbolt. Puedes crearlo con el siguiente comando:

nano /etc/apache2/sites-available/passbolt.conf

Agrega las siguientes líneas:



        ServerName passbolt.linuxbuz.com
        DocumentRoot /var/www/passbolt

        ErrorLog ${APACHE_LOG_DIR}/passbolt_error.log
        CustomLog ${APACHE_LOG_DIR}/passbolt_access.log combined


      
                Options FollowSymLinks MultiViews
                AllowOverride All
                Require all granted
        

Guarda y cierra el archivo, luego activa el archivo de host virtual y reinicia el servicio de Apache con el siguiente comando:

a2ensite passbolt  
systemctl restart apache2

Cuando hayas terminado, puedes proceder al siguiente paso.

Asegurar Passbolt con Let’s Encrypt

Para asegurar tu sitio web con Let’s Encrypt SSL, necesitarás instalar la utilidad cliente Certbot en tu sistema para gestionar el certificado SSL.

Puedes instalarlo con el siguiente comando:

apt-get install python3-certbot-apache -y

Una vez instalado, ejecuta el siguiente comando para asegurar tu sitio web con Let’s Encrypt SSL:

certbot --apache -d passbolt.linuxbuz.com

Se te pedirá que proporciones tu correo electrónico y aceptes los términos del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for passbolt.linuxbuz.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/passbolt-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/passbolt-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/passbolt-le-ssl.conf

A continuación, selecciona si deseas o no redirigir el tráfico HTTP a HTTPS, como se muestra a continuación:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Escribe 2 y presiona Enter para instalar el SSL de Let’s Encrypt para tu sitio web:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/passbolt.conf to ssl vhost in /etc/apache2/sites-available/passbolt-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://passbolt.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=passbolt.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/passbolt.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/passbolt.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-10-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

En este punto, tu sitio web está asegurado con Let’s Encrypt SSL.

Instalar Passbolt

A continuación, puedes instalar Passbolt ejecutando el script de instalación de Passbolt.

Primero, cambia al directorio /var/www/passbolt:

cd /var/www/passbolt

A continuación, ejecuta el script de instalación de Passbolt con el siguiente comando:

sudo su -s /bin/bash -c "./bin/cake passbolt install --no-admin" www-data

Una vez que la instalación se haya completado con éxito, deberías obtener la siguiente salida:

All Done. Took 1.6533s

Import the server private key in the keyring
---------------------------------------------------------------
Importing /var/www/passbolt/config/gpg/serverkey_private.asc
Keyring init OK

Passbolt installation success! Enjoy! ?

A continuación, necesitarás finalizar la configuración de Passbolt desde el navegador. Abre tu navegador web y visita la URL https://passbolt.linuxbuz.com. Deberías ver la siguiente pantalla:

Passbolt Download

Aquí, necesitarás descargar e instalar un complemento para tu navegador. Haz clic en Download the plugin para descargar e instalar el complemento de Passbolt. Una vez instalado, puedes proceder al siguiente paso.

Acceder a la Interfaz Web de Passbolt

Antes de comenzar, necesitarás crear un usuario administrador y establecer una contraseña para Passbolt. Puedes hacerlo con el siguiente comando:

cd /var/www/passbolt  
sudo su -s /bin/bash -c "./bin/cake passbolt register_user -u [email protected] -f howtoforge -l Demo -r admin" www-data

Deberías obtener la siguiente salida:

     ____                  __          ____  
    / __ \____  _____ ____/ /_  ____  / / /_ 
   / /_/ / __ \/ ___/ ___/ __ \/ __ \/ / __/ 
  / ____/ /_/ (__  |__  ) /_/ / /_/ / / /    
 /_/    \__,_/____/____/_.___/\____/_/\__/   

 Open source password manager for teams
---------------------------------------------------------------
User saved successfully.
To start registration follow the link provided in your mailbox or here: 
https://passbolt.linuxbuz.com/setup/install/5bcfb186-3d9f-448f-8388-f705abd855c8/a2ba80dc-5ef2-433a-9138-11282747b377

Ahora, copia el enlace de la salida anterior y úsalo para finalizar la configuración de Passbolt en el navegador. Deberías ver la siguiente pantalla:

Get Passbolt Plugin

Confirma que la URL y la huella digital de la clave GPG están correctas y haz clic en el botón Next. Deberías ver la siguiente pantalla:

Create new key

Proporciona el nombre del propietario, el correo electrónico y haz clic en el botón Next. Deberías ver la siguiente pantalla:

Set Passphrase

Establece tu contraseña y haz clic en el botón Next. Deberías ver la siguiente pantalla:

Create backup

Descarga tu clave secreta y haz clic en el botón Next. Deberías ver la siguiente pantalla:

Set security token

Establece un token de seguridad y haz clic en el botón Next. Deberías ver la siguiente pantalla:

Passbolt login

Proporciona tu nombre de usuario, contraseña y haz clic en el botón login. Deberías ver el panel de control de Passbolt en la siguiente pantalla:

Passbolt team password manager

Conclusión

¡Felicidades! has instalado con éxito el gestor de contraseñas Passbolt con Let’s Encrypt SSL en el servidor Ubuntu 20.04. Ahora puedes almacenar y compartir tus contraseñas con tus equipos y usuarios individuales. No dudes en preguntarme si tienes alguna pregunta.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.