首页 > 其他分享 >docker-compose 部署https harbor

docker-compose 部署https harbor

时间:2024-08-13 11:16:04浏览次数:11  
标签:compose harbor ca live baga certs key docker

https harbor提升安全性,部署更加合规

一、配置Harbor证书

1、生成自签名ca和ca证书,subj信息看需求修改
这里的 -subj 参数设置了证书的主题信息,包括国家代码 (C),州或省份 (ST),城市 (L),组织 (O),和常用名 (CN)。有效期设置为 20 年。

# 生成 CA 私钥
openssl genrsa -out ca.key 4096

# 生成自签名 CA 证书
openssl req -x509 -new -nodes -key ca.key -sha256 -days 7300 -out ca.crt \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=peekaboo/CN=My Custom CA"

2、生成 Harbor 的私钥和证书签名请求 (CSR)

# 生成私钥
openssl genrsa -out harbor.baga.live.key 4096

# 生成证书签名请求 (CSR)
openssl req -new -key harbor.baga.live.key -out harbor.baga.live.csr \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=peekaboo/OU=peekaboo/CN=harbor.baga.live"

3、使用 CA 签署 Harbor 的证书

openssl x509 -req -in harbor.baga.live.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
    -out harbor.baga.live.crt -days 7300 -sha256

二、部署harbor

1、下载harbor包,我选择最新版本
https://github.com/goharbor/harbor/releases
我使用了online包,部署时从公网拉取镜像,这需要国外网络或者代理
harbor-online-installer-v2.10.3.tgz

2、解压harbor包后创建证书目录,将生成的证书拷贝到目录certs目录中
解压后会生成harbor目录

mdkir /data/harbor/certs/
# 拷贝证书到certs目录下,证书文件如下
ca.crt  ca.key  harbor.baga.live.crt  harbor.baga.live.csr  harbor.baga.live.key

3、配置harbor.yml

# 修改项,主要就是配置证书,数据目录按需修改
hostname: harbor.baga.live
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /data/harbor/certs/harbor.baga.live.crt
  private_key: /data/harbor/certs/harbor.baga.live.key
data_volume: /data

4、运行install.sh生成docker-compose

bash install.sh

root@harbor:/data/harbor# ll -rth docker-compose.yml 
-rw-r--r-- 1 root root 5.8K Aug 13 10:55 docker-compose.yml

5、此时可以使用ip访问到harbor
image

6、harbor创建机器人用户
这里我创建了baga用户,但是机器人用户名是robot$baga

7、打包证书放到拉取镜像的docker

root@harbor:/data/harbor/certs# tar zcvf harbor-cert.tar.gz ./ca.crt ./harbor.baga.live.crt ./harbor.baga.live.key
./ca.crt
./harbor.baga.live.crt
./harbor.baga.live.key

8、jenkins的docker创建certs.d/harbor.baga.live目录,解压到目录下,这样就不需要daemon.json中指定证书文件了

root@jenkins:/etc/docker/certs.d/harbor.baga.live# scp 192.168.31.40:/data/harbor/certs/harbor-cert.tar.gz .

9、certs.d目录创建login文件

root@jenkins:/etc/docker/certs.d# cat login 
docker login harbor.baga.live -u 'robot$baga' -p 'tKHmmQvhF8e1l8Vut5WXlIB4CwudyBK1'

标签:compose,harbor,ca,live,baga,certs,key,docker
From: https://www.cnblogs.com/Jarvansi/p/18356496

相关文章

  • RabbitMQ普通集群同一宿主机docker搭建
    1.准备3个节点安装rabbitmq,搭建集群(注意:每个节点启动间隔15~20s,如果启动失败,需删除宿主机文件重新启动)2.宿主机文件目录手动创建,并设置可操作权限准备宿主机文件目录cd/usr/local/创建rabbitmq映射目录mkdirrabbitmqcdrabbitmqmkdir1mkdir2mkdir3cd1mkdirli......
  • 【Docker】史上最全 Docker 教程
    Docker入门:史上最全Docker教程安装curl-sSLhttps://get.docker.com/|shsudochmod777/var/run/docker.sock在后台创建和运行容器$dockerrun-d-p80:80docker/getting-started-d-以分离(后台)模式运行容器-p80:80-将端口80映射到容器中......
  • Windows10下Docker安装Mysql5.7
    一、环境说明:docker:v4.25.0mysql:5.7二、 打开命令工具打开WindowsPowerShell 三、搜索镜像dockersearchmysql  四、拉取镜像拉取最新版本dockerpullmysql 拉取特定版本dockerpullmysql:5.7 五、查看所有镜像dockerimages 六、启......
  • Docker 的基本概念和优势,以及在应用程序开发中的实际应用
    Docker是一种用于虚拟化和部署应用程序的开源平台,它采用容器化技术,可以将应用程序及其依赖项打包成一个独立的、可移植的容器。以下是Docker的基本概念和优势:容器:Docker利用操作系统层面的虚拟化技术,将应用程序及其依赖项打包成一个独立的容器。每个容器都是独立的、可互......
  • Jenkins+gitlab+harbor+docker-compose自动化部署配置
    本文主要讲解Jenkins在Linux环境下实现自动化部署项目(提供一种思路)持续集成与持续部署(CI/CD)流程的实现,需要依赖一系列先进的工具和技术。这些工具不仅提高了开发效率,还确保了代码质量和发布的可靠性。以下是构建CI/CD流程所需的关键工具列表及其作用概述:Jenkins-作为自动化......
  • docker之修改容器中的文件
    一、目的:使用dockerpull项目后,想进去看看项目的组织架构。二、解决办法1)启动docker-->systemctlstartdocker2)看docker下的项目有啥  dockerimages3)查看dockerps并进入容器 三、修改容器内的文件1)比如想修改app_mysql.yml文件,直接执行viapp_mysql.yml则会......
  • ubuntu 22.04 安装 docker(服务器从毛胚到精装)
    1、用户操作阿里云默认是root用户,我们一般要自己创建一个用户,然后给该用户sudo权限添加用户sudoaddusernewUserName赋予sudo权限sudousermod-aGsudonewUserName删除用户sudodeluser--remove-home--remove-all-filesnewUserName切换用户sudosu-newUse......
  • docker 详细教程(通俗易懂,带有应用示例)
    1、Docker基本概念什么是Docker?Docker是一个开源的容器化平台,允许开发者封装他们的应用程序及其所有依赖项到一个标准化的单元中,这个单元被称为“容器”。容器可以在任何支持Docker的环境中运行,从而确保应用程序的可移植性和一致性。Docker的优势一致性和可移植性......
  • docker 详细教程(通俗易懂,带有应用示例)
    1、Docker基本概念什么是Docker?Docker是一个开源的容器化平台,允许开发者封装他们的应用程序及其所有依赖项到一个标准化的单元中,这个单元被称为“容器”。容器可以在任何支持Docker的环境中运行,从而确保应用程序的可移植性和一致性。Docker的优势一致性和可移植性:Docke......
  • 深入理解Docker容器管理:优雅停止运行中的容器
    在现代的软件开发和运维领域,Docker容器技术已经成为一种主流的轻量级虚拟化解决方案。容器的生命周期管理是容器化技术中一个重要的组成部分,而停止一个正在运行的Docker容器是容器生命周期管理中的常见操作。本文将详细介绍如何优雅地停止一个正在运行的Docker容器,包括......