如何在 Rocky Linux 上安装 Passbolt 密码管理器
在此页
- 先决条件
- 安装依赖包
- 配置 MariaDB 和 PHP-FPM
- 为 Passbolt 创建新数据库
- 下载 Passbolt 并安装 PHP 依赖项
- 为服务器生成 GPG 密钥
- 配置 Passbolt 和 Nginx 服务器块
- 从 Web 浏览器访问 Passbolt
- 结论
Passbolt 是一个免费的开源密码管理器,基于 PHP、MySQL 和 OpenPGP。它是一个自托管应用程序服务器,您可以将其安装在您的服务器上。 Passbolt 主要是为团队设计的,但您也可以将其用作个人密码管理器。
Passbolt 建立在 OpenPGP 之上并具有可扩展的 API。在客户端,您可以使用 Passbolt 浏览器扩展,它基于 OpenPGP.js 构建以实现加密功能。在服务器端,Passbolt 使用 GnuPG PHP 扩展和 openpgp-php 来执行密钥验证和用户身份验证。 Passbolt 使用 GPGAuth 协议进行用户身份验证。
先决条件
在本文中,您将学习如何在 Rocky Linux 服务器上安装 Passbolt 自托管密码管理器。您将使用 PHP 7.4、MariaDB 服务器和 Nginx Web 服务器安装 Passbolt。
对于此示例,我们将使用以下服务器详细信息:
- 操作系统:Rocky Linux 8.4(绿黑曜石)
- IP 地址:192.168.1.10
- 域名,在本例中我将使用:https://pass.example.io
现在让我们开始 Passbolt 安装。
安装包依赖
首先,您将添加新的存储库并将一些软件包依赖项安装到 Rocky Linux 系统。
1. 执行以下命令以启用 PowerTools 存储库并安装 Extra Packages for Enterprise Linux (EPEL) 存储库。
sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release -y
2. 执行以下命令启用 PHP 7.4 存储库。
sudo dnf module enable php:7.4 -y
3. 接下来,使用下面的 DNF 命令安装 PHP-FPM、MariaDB、Nginx 和一些其他包。
sudo dnf install -y nginx mariadb-server mariadb php php-intl php-gd php-mysqlnd php-pear php-devel php-mbstring php-fpm php-json php-ldap gcc gpgme gpgme-devel git policycoreutils-python-utils unzip haveged make gcc
4.全部安装完成后,执行以下命令下载PHP composer安装脚本。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
现在再次执行以下命令以在系统范围的环境中安装 PHP 作曲家。
php composer-setup.php
sudo mv composer.phar /usr/bin/composer
检查 PHP composer 命令如下。
sudo -u nginx composer --version
您将获得如下类似的输出。
Composer version 2.1.12 2021-11-09 16:02:04
5. 接下来,从 PHP 扩展社区库 (PECL) 存储库安装 GnuPG PHP 扩展。
pecl install gnupg
之后,使用以下命令启用 GnuPG PHP 扩展。
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini
6. 现在使用下面的 systemctl 命令启动并启用一些服务。
sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php-fpm
sudo systemctl enable --now haveged
现在您已经完成了 Passbolt 包依赖项的安装。
配置 MariaDB 和 PHP-FPM
在此步骤中,您将设置 MariaDB root 密码和 PHP-FPM 服务。
1.执行以下命令设置MariaDB root密码。
mysql_secure_installation
为 MariaDB root 用户输入一个新的强密码并重复,然后输入 Y 以同意所有 MariaDB 配置。
2. 接下来,使用 nano 编辑器编辑 /etc/php.ini 配置文件。
nano /etc/php.ini
取消注释 date.timezone 选项并使用您的服务器时区更改值。
date.timezone = Europe/Paris
保存配置并退出。
3. 使用 nano 编辑器编辑 PHP-FPM 配置 /etc/php-fpm.d/www.conf。
nano /etc/php-fpm.d/www.conf
将 PHP-FPM 的默认用户和组更改为 nginx。
user = nginx
group = nginx
取消注释 listen.owner 和 listen.group,并将值更改为用户 nginx。
listen.owner = nginx
listen.group = nginx
保存配置并退出。
现在通过使用下面的 systemctl 命令重新启动 PHP-FPM 服务来应用新的 PHP-FPM 配置。
sudo systemctl restart php-fpm
并且您已经完成了 PHP-FPM 的基本配置并为 MariaDB root 用户创建了一个新密码。
为 Passbolt 创建新数据库
要为 Passbolt 安装创建新数据库,请使用下面的 mysql 命令登录到 MariaDB shell。
mysql -u root -p
1. 使用以下查询创建一个新数据库 passdb。
CREATE DATABASE passdb;
2. 将数据库passdb 的所有权限授予新用户。以下查询将自动创建一个新的 MariaDB 用户 passbolt。
GRANT ALL ON passdb.* to IDENTIFIED BY 'PassboltdbPass';
3. 重新加载所有表权限。
FLUSH PRIVILEGES;
现在键入 EXIT 并按 Enter 从 MariaDB shell 注销。

转到下一步以开始 Passbolt 安装。
下载 Passbolt 并安装 PHP 依赖项
对于这一步,您将把 Passbolt 源代码下载到您的服务器并使用 PHP composer 安装 PHP 依赖项。
1. 将当前工作目录更改为 /var/www 并使用以下命令克隆 Passbolt 源。
cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt
passbolt 安装是 /var/www/passbolt
2. 将 Passbolt 安装目录的所有权更改为用户 nginx。
sudo chown -R nginx:nginx /var/www/passbolt
3. 移动到 Passbolt 安装目录并使用 PHP composer 命令安装 PHP 依赖项。并确保以用户 nginx 的身份运行 PHP composer 命令。
cd /var/www/passbolt
sudo -u nginx composer install --no-dev
如果所有 PHP 依赖项安装完成,请转到下一步以生成 GPG 密钥。
为服务器生成 GPG 密钥
在此步骤中,您将为 Passbolt 服务器生成一个新的 GPG 密钥。
当前的 PHP 扩展 openpgp-php 和 GnuPG PHP 仍然不支持密码短语,因此您将创建一个没有密码短语的新 GPG 密钥。
1. 要生成 GPG 密钥,请执行下面的 gpg 命令。
gpg --gen-key
输入您的姓名和电子邮件地址,不要使用密码。
gpg (GnuPG) 2.2.20; Copyright (C) 2020 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.
Note: Use "gpg --full-generate-key" for a full featured key generation dialog.
GnuPG needs to construct a user ID to identify your key.
Real name: johndoe
Email address: >
sub rsa2048 2021-11-16 [E] [expires: 2023-11-16]
另外,记下新密钥的指纹。对于此示例,密钥的指纹是 BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A。
2. 接下来,将 GPG 密钥导出到 passbolt 安装目录 /var/www/passbolt/config/gpg/。
gpg --armor --export-secret-keys > /var/www/passbolt/config/gpg/serverkey.asc
此时,您必须记下您的 GPG 密钥信息,如下所示。
- 指纹:BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A
- 电子邮件:[电子邮件受保护]
- 公钥:serverkey.asc
- 私钥:serverkey_private.asc
3. 接下来,您必须使用以下命令为用户 nginx 生成 GNUPG 目录。
sudo su -s /bin/bash -c "gpg --list-keys" nginx
您将看到如下类似的输出。
gpg: directory '/var/lib/nginx/.gnupg' created
gpg: keybox '/var/lib/nginx/.gnupg/pubring.kbx' created
gpg: /var/lib/nginx/.gnupg/trustdb.gpg: trustdb created
现在您已经完成了 Passbolt 的 GPG 密钥配置。转到 Passbolt 配置的下一步。
配置 Passbolt 和 Nginx 服务器块
在此步骤中,您将配置 Passbolt 安装域名、数据库和 GPG 密钥。
在开始之前,将您的工作目录更改为 /var/www/passbolt 目录。
export PASSBOLT=/var/www/passbolt/
cd $PASSBOLT
1. 将默认配置复制到 passbolt.php,然后使用 nano 编辑器对其进行编辑。
cp config/passbolt.default.php config/passbolt.php
nano config/passbolt.php
使用 Passbolt 域名安装更改 fullBaseUrl 选项。对于这个例子是 https://pass.example.io
'App' => [
// comment
'fullBaseUrl' => 'https://pass.example.io',
// comment..
],
使用下面的 MariaDB 用户和密码更改数据库配置。
// Database configuration.
'Datasources' => [
'default' => [
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'passbolt',
'password' => 'PassboltdbPass',
'database' => 'passdb',
],
],
复制并粘贴您的 GPG 指纹并取消注释 public 和 private 选项。
'gpg' => [
//
// COMMENT REMOVED
//
'serverKey' => [
// Server private key fingerprint.
'fingerprint' => '38E3736DD02860F8CBA57BB99C8B82A2C3A6959F',
'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
],
保存配置并退出。
2. 接下来,使用 nano 编辑器创建新的 Nginx 服务器块配置 /etc/nginx/conf.d/passbolt.conf。
nano /etc/nginx/conf.d/passbolt.conf
复制并粘贴以下配置,并确保更改 SSL 证书的域名和路径。
server {
listen 80;
server_name pass.example.io;
return 302 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name pass.example.io;
root /var/www/passbolt;
ssl_certificate /etc/letsencrypt/live/pass.example.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pass.example.io/privkey.pem;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; # Requires nginx >= 1.5.9
# ssl_stapling on; # Requires nginx >= 1.3.7
# ssl_stapling_verify on; # Requires nginx => 1.3.7
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
location / {
try_files $uri $uri/ /index.php?$args;
index index.php;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_split_path_info ^(.+\.php)(.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $http_host;
}
location ~* \.(jpe?g|woff|woff2|ttf|gif|png|bmp|ico|css|js|json|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ {
access_log off;
log_not_found off;
try_files $uri /webroot/$uri /index.php?$args;
}
}
保存配置并退出。
现在验证 Nginx 配置并确保没有出现任何错误,然后重新启动 Nginx 服务。
nginx -t
sudo systemctl restart nginx

3. 接下来,将工作目录更改为 /var/www/passbolt 并使用以下命令开始 Passbolt 安装。
cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt install" nginx
在 Passbolt 安装过程结束时,您将为 Passbolt 创建一个新的管理员用户。
键入您的电子邮件地址、名字和姓氏。然后复制您的 Passbolt 安装链接。

从 Web 浏览器访问 Passbolt
打开您的网络浏览器并将 Passbolt 安装程序生成的 Passbolt 安装链接粘贴到地址栏。
1. Passbolt 会自动检测您的网络浏览器并显示 Passbolt 浏览器扩展的安装链接。
单击按钮下载扩展,然后安装 Passbolt 浏览器扩展。

2. 键入一个新的强密码并单击下一步 按钮。

3. 将恢复工具包下载到您的本地计算机并单击下一步 按钮。您可以使用恢复工具包来重置您的 Passbolt 密码。

4. 为您的 Passbolt 安全令牌选择颜色,并确保记住这三个字母。再次单击下一步 按钮。

5. 现在您将被重定向到 Passbolt 用户仪表板,如下所示。

6.密码列表用户。

您已经完成了 Passbolt 密码管理器的安装。
结论
恭喜!您已经在 Rocky Linux 上成功安装了带有 PHP-FPM、MariaDB 服务器和 Nginx Web 服务器的 Passbolt 密码管理器。
对于下一步,您可以为您的团队创建新的 passbolt 用户。