docker-compose快速搭建passbolt服务及CA证书的使用(https协议访问)

文章目录

  • 1. 服务搭建
  • 2. 创建管理员用户
  • 3. 使用CA认证

1. 服务搭建

  1. 创建passbolt目录,并进入该目录
  2. 创建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
  1. 创建对应的挂载目录
mkdir {data,gpg,jwt}
  1. 目录权限
chmod 777 gpg jwt

说明:

  • 镜像的工作用户不是宿主机的root用户,我们现在并不知道它是谁
  • 它需要在gpg和jwt两个目录里写文件,我们此时先给一个777权限
  • 容器启动后,我们将看见这个用户写入文件
  • 从文件我们可以知道这个用户是谁
  • 再将目录的所有者改成这个用户,并把权限给回755或者750
  1. 启动容器
[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
  1. 改回目录权限
    • 第4步中我们给了gpg、jwt过高的权限,为了安全,我们需要降低它的权限
    • 1)进入gpg目录,查看文件的所有者。如下可知,是id为33的用户
    [root@liubei passbolt]# ll gpg/
    总用量 12
    -rw-r--r-- 1 33 tape 2456 1227 15:14 serverkey.asc
    -rw-r--r-- 1 33 tape 5091 1227 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认证

  1. 修改docker-compose.yml 中的APP_FULL_BASE_URL值如下:
APP_FULL_BASE_URL: https://www.xxx.com
  1. 在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 换成实际的证书和密钥文件名

  1. 将准备好的证书文件拷贝到对应位置
  2. 创建 ./conf.d 目录,在目录下添加nginx子配置文件 80.conf内容如下:
server {listen       80;server_name  www.xxx.com;rewrite ^(.*) https://$server_name$1 permanent;
}
  1. 重启服务
docker-compose down
docker-compose up -d

restart 时容器不会重读docker-compose.yml文件,所以要先down再up


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/314813.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot灵活集成多数据源(定制版)

如来说世界,非世界,是名世界 如来说目录,非目录,是名目录 前言前期准备代码实现演示扩展 前言 本篇博客基于SpringBoot整合MyBatis-plus,如果有不懂这个的, 可以查看我的这篇博客:快速CRUD的秘诀…

【操作系统】虚拟存储管理-页面置换算法

文章目录 一. 实验目的二. 实验内容三. 实验步骤四. 实验结果五. 实验总结附:系列文章 一. 实验目的 (1)理解虚拟内存管理的原理和技术; (2)掌握请求分页存储管理中的页面置换算法; &#xff0…

zlib.decompressFile报错 【Bug已解决-鸿蒙开发】

文章目录 项目场景:问题描述原因分析:解决方案:方案1方案2此Bug解决方案总结寄语项目场景: 最近也是遇到了这个问题,看到网上也有人在询问这个问题,本文总结了自己和其他人的解决经验,解决了zlib.decompressFile报错 的问题。 问题: zlib.decompressFile报错,怎么解…

软件设计模式 --- 类,对象和工厂模式的引入

Q1:什么是软件设计模式? A:软件设计模式,又称设计模式。它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。综上&…

【Java系列】文件操作详解

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习JavaEE的一点学习心得,欢迎大家在评论区交流讨论💌 目录 …

高精度定位赛道爆发前夜 谁在强势崛起?|高工微报告

伴随着以NOA为代表的高阶智驾功能加速渗透,高精度定位赛道正进入快速增长通道。 整体技术链路上,高精度定位为高阶智驾的刚需:在“重地图、轻感知”阶段,其结合高精地图发挥作用;在“轻地图、重感知”阶段&#xff0c…

Django 学习教程- Django模板(Template)

系列 Django 学习教程-介绍与安装-CSDN博客 Django 学习教程- Hello world入门案例-CSDN博客 前言 在上一章节中我们使用django.http.HttpResponse() 来输出 "Hello World!"。该方式将数据与视图混合在一起,不符合 Django 的 MTV 思想。 本…

JavaScript history对象常用方法【通俗易懂】

✨前言✨   本篇文章主要在于了解及使用JavaScript中history对象常用方法 🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍒博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 文章目录 一&…

技嘉B460M AORUS成功安装Win7

重要说明:本文适合有win7安装经验的读者,安装win7具体步骤没有提及,只说明了技嘉B460M AORUS要安装win7时,需要的额外设置。 1. 背景介绍 2023年组装了一台电脑,机械硬盘,安装了windows 10, 几…

004、变量与可变性

1. 变量与可变性 在Rust中,变量默认是不可变的,这一设计是为了让你安全方便地写出复杂、甚至是并行的代码。 当然,Rust也提供了可使用的可变变量的方法,这个待会讨论。 当一个变量是不可变时,一旦它被绑定到某个值上面…

手机摄影学习

手机摄影学习 基础知识1,成像基本原理2,什么是焦距3,快门(简称s)4,上面功能之间的相互影响5,焦点6,过爆、欠曝7,cmos(感光芯片)、测光、聚焦&…

【索引的数据结构】第1章节:B+Tree存储结构

目录结构 之前整篇文章太长,阅读体验不好,将其拆分为几个子篇章。 本篇章讲解 BTree 存储结构。 什么是索引 可以简单理解为索引好比一本书的目录,通过目录我们可以快速定位到我们要查看的章节。 MySQL 中的数据同样也是根据索引分类&…