文章目录
- 1. 服务搭建
- 2. 创建管理员用户
- 3. 使用CA认证
1. 服务搭建
- 创建passbolt目录,并进入该目录
- 创建docker-compose.yml 文件,内容如下:
version: '3'services:db:image: mariadb:10.6container_name: pb-mariadbrestart: unless-stoppedenvironment:MYSQL_RANDOM_ROOT_PASSWORD: "true"MYSQL_DATABASE: "passbolt"MYSQL_USER: "passbolt"MYSQL_PASSWORD: "P4ssb0lt"volumes:- ./data:/var/lib/mysqlpassbolt:image: passbolt/passbolt:latest-cecontainer_name: pb-passboltrestart: unless-stoppeddepends_on:- dbenvironment:APP_FULL_BASE_URL: http://10.10.xxx.xxx:80DATASOURCES_DEFAULT_HOST: "db"DATASOURCES_DEFAULT_USERNAME: "passbolt"DATASOURCES_DEFAULT_PASSWORD: "P4ssb0lt"DATASOURCES_DEFAULT_DATABASE: "passbolt"PASSBOLT_REGISTRATION_PUBLIC: "true"EMAIL_DEFAULT_FROM: "liubei-cto@xishu.com.cn"EMAIL_TRANSPORT_DEFAULT_HOST: "mail.xishu.com.cn"EMAIL_TRANSPORT_DEFAULT_PORT: "25"EMAIL_TRANSPORT_DEFAULT_USERNAME: "liubei-cto@xishu.com.cn"EMAIL_TRANSPORT_DEFAULT_PASSWORD: "liubei@161"#EMAIL_TRANSPORT_DEFAULT_TLS: "true"volumes:- ./gpg:/etc/passbolt/gpg- ./jwt:/etc/passbolt/jwtcommand: ["/usr/bin/wait-for.sh", "-t", "0", "db:3306", "--", "/docker-entrypoint.sh"]ports:- 80:80- 443:443
- 创建对应的挂载目录
mkdir {data,gpg,jwt}
- 目录权限
chmod 777 gpg jwt
说明:
- 镜像的工作用户不是宿主机的root用户,我们现在并不知道它是谁
- 它需要在gpg和jwt两个目录里写文件,我们此时先给一个777权限
- 容器启动后,我们将看见这个用户写入文件
- 从文件我们可以知道这个用户是谁
- 再将目录的所有者改成这个用户,并把权限给回755或者750
- 启动容器
[root@liubei passbolt]# docker-compose up -d
Creating network "passbolt_default" with the default driver
Creating pb-mariadb ... done
Creating pb-passbolt ... done[root@liubei passbolt]# docker-compose psName Command State Ports
-----------------------------------------------------------------------------------------------
pb-mariadb docker-entrypoint.sh mariadbd Up 3306/tcp
pb-passbolt /usr/bin/wait-for.sh -t 0 ... Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
- 改回目录权限
- 第4步中我们给了gpg、jwt过高的权限,为了安全,我们需要降低它的权限
- 1)进入gpg目录,查看文件的所有者。如下可知,是id为33的用户
[root@liubei passbolt]# ll gpg/ 总用量 12 -rw-r--r-- 1 33 tape 2456 12月 27 15:14 serverkey.asc -rw-r--r-- 1 33 tape 5091 12月 27 15:14 serverkey_private.as
- 2)修改gpg、jwt的所有者
[root@liubei passbolt]chown 33.33 gpg jwt
- 3)修改权限为755
[root@liubei passbolt]chmod 755 gpg jwt
2. 创建管理员用户
docker exec pb-passbolt su -m -c "bin/cake passbolt register_user -u liubei-cto@xishu.com.cn -f bei -l liu -r admin" -s /bin/sh www-data
- 说明:
- liubei-cto@xishu.com.cn:用户名(有邮箱验证,必须写正确)
- -f :first name
- -l : last name
- 密码在首次登录时,邮箱验证后填写
至此就可以正常使用了,如果需要使用https访问,你可以继续往下看
3. 使用CA认证
- 修改docker-compose.yml 中的
APP_FULL_BASE_URL
值如下:
APP_FULL_BASE_URL: https://www.xxx.com
- 在docker-compose.yml 中添加挂载证书文件和nginx配置文件
volumes:- ./gpg:/etc/passbolt/gpg- ./jwt:/etc/passbolt/jwt# 下边两行是证书文件- ./crt/xxx.com.pem:/etc/ssl/certs/certificate.crt- ./crt/xxx.com.key:/etc/ssl/certs/certificate.key# nginx子配置文件目录- ./conf.d:/etc/nginx/conf.d/
xxx.com.pem和xxx.com.key 换成实际的证书和密钥文件名
- 将准备好的证书文件拷贝到对应位置
- 创建 ./conf.d 目录,在目录下添加nginx子配置文件
80.conf
内容如下:
server {listen 80;server_name www.xxx.com;rewrite ^(.*) https://$server_name$1 permanent;
}
- 重启服务
docker-compose down
docker-compose up -d
restart 时容器不会重读docker-compose.yml文件,所以要先down再up