步骤一:部署Docker容器(Https)

转到下载页面https://github.com/goharbor/harbor/releases,根据需求下载在线或者离线安装包。其中在线安装包不包含镜像文件。

导入到部署了docker的Linux中,并解压文件:

tar xzvf harbor-online-installer-version.tgz

或者:

tar xzvf harbor-offline-installer-version.tgz

解压完成后,开始HTTPs相关的配置。首先是创建CA的私钥:

openssl genrsa -out ca.key 4096

接着创建CA的证书

openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \-key ca.key \-out ca.crt

X.509 证书由多个字段组成。该 Subject领域是与本教程最相关的领域之一。它给出了证书所属客户端的 DName。DName 是赋予 X.500 目录对象的唯一名称。它由许多称为相对可分辨名称 (RDN) 的属性值对组成。一些最常见的RDN及其解释如下:

  • CN: 通用名
  • OU: 组织单位
  • O: 组织
  • L: 地方
  • S: 州或省名
  • C: 国家的名字

例如:

openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=UK/ST=Wales/L=Cardiff/O=Cardiff University/OU=Headquarter/CN=project.com" \-key ca.key \-out ca.crt

生成CA的私钥和证书后,需要生成Harbor的私钥和证书:

生成私钥命令:

openssl genrsa -out yourdomain.com.key 4096

后续文章中,yourdomain.com.key将用实际的名称代替:

openssl genrsa -out harbor.project.com.key 4096

接下来,生成Harbor的证书请求文件:

openssl req -sha512 -new \-subj "/C=UK/ST=Wales/L=Cardiff/O=Cardiff University/OU=Headquarter/CN=harbor.project.com" \-key harbor.project.com.key \-out harbor.project.com.csr

配置x509 v3拓展文件,配置该文件的目的是帮助生成符合主题备用名称 (SAN) 和 x509 v3 的证书扩展要求的证书文件。其中,SAN 或主题备用名称是一种结构化方式,用于指示受证书保护的所有域名和 IP 地址。被视为 SAN 的项目的简短列表中包括子域和 IP 地址。该文件的格式如下:

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names[alt_names]
DNS.1=yourdomain.com
DNS.2=yourdomain
DNS.3=hostname
EOF

具体实例如下:

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names[alt_names]
DNS.1=harbor.project.com
DNS.2=harbor.project
DNS.3=harbor
EOF

配置完成后,使用该文件和openssl为Harbor生成证书:

openssl x509 -req -sha512 -days 3650 \-extfile v3.ext \-CA ca.crt -CAkey ca.key -CAcreateserial \-in harbor.project.com.csr \-out harbor.project.com.crt

现在,我们就得到了后续需要使用的ca的证书,harbor的私钥和证书。

注意: 如果想使用自己的CA,例如window server中的CA为harbor颁发证书。请直接使用如下的网站生成满足要求的证书请求和私钥文件: https://decoder.link/csr_generator

接下来,我们需要给Harbor容器添加证书。由于在部署容器时使用了卷映射,所以我们直接将Harbor的私钥和证书拷贝到宿主机的/data/cert目录下即可:

cp harbor.project.com.crt /data/cert
cp harbor.project.com.key /data/cert

完成后,转换harbor.project.com.crt为harbor.project.cert, 供 Docker 使用。Docker 守护进程将.crt文件解释为 CA 证书,将.cert文件解释为Harbor证书。

openssl x509 -inform PEM -in harbor.project.com.crt -out harbor.project.com.cert

创建存放验证Harbor容器证书的Docker的目录,并将Harbor的私钥,证书,以及CA的证书拷贝进去:

mkdir -p /etc/docker/certs.d/harbor.project.com/
cp harbor.project.com.cert /etc/docker/certs.d/harbor.project.com/
cp harbor.project.com.key /etc/docker/certs.d/harbor.project.com/
cp ca.crt /etc/docker/certs.d/harbor.project.com/

完成后,在解压后的Harbor目录下,找到如下的harbor.yml文件,并修改其中的内容:

具体参数如下:https://goharbor.io/docs/2.1.0/install-config/configure-yml-file/。配置完成后,依然在解压后的目录下,找到install.sh文件,使用如下命令进行harbor的部署:

sudo ./install.sh

注意,这一步的前提是安装了满足版本要求的docker-compose,否则会出现报错。安装完成后,进行验证容器是否运行成功:

可以看到,这里的状态都是healthy,说明没有问题。接下来,我们及可以通过命令或者游览器进行访问Harbor镜像仓库。

CLI命令如下:

docker login harbor.project.com -u admin -p Harbor12345


接下来是Web登陆,访问宿主机的443 Https端口即可:

步骤二:连接AD域

首先,配置完成自己的AD域,并且创建相应的Harbor登陆用户。如下,我已经配置完成了AD域project.com和用户HarborAdmin

完成AD域配置后,在Harbor中进行连接:

配置AD域连接的参数。具体的参数解释如下: https://docs.bmc.com/docs/fpsc121/ldap-attributes-and-associated-fields-495323340.html

配置完成后可以点击页面下方的测试按钮进行检查是否能正常连接。如果测试成功的话,可以保存配置。

接下来可以在用户管理栏,为HarborAdmin设置管理员权限:

设置完成后,我们就可以logout并使用AD域的账号登陆Harbor仓库了。

步骤三:Push+Pull镜像

CLI命令行登陆Harbor后,可以将我们的镜像Push到私有仓库存储。首先在Harbor中创建私有仓库:

接下来需要给镜像打上tag,tag的格式为:

docker tag SOURCE_IMAGE[:TAG] harbor.project.com/project_images1/IMAGE[:TAG]

例如,我们想要推送nginx:latest镜像到Harbor,则使用如下的命令:

 docker tag nginx:latest harbor.project.com/project_images1/nginx:v1

修改完成后,我们就可以使用下面的命令,推送镜像到Harbor的私有仓库中了:

docker push harbor.project.com/project_images1/nginx:v1

在Harbor中进行检查,可以看到已经推送成功了:

同样的方式可以pull镜像到本地:

docker pull harbor.project.com/project_images1/nginx:v1

参考资料:https://goharbor.io/docs/2.1.0/install-config/

Harbor容器安装以及相关特性部署与使用(SSL证书+AD域)相关推荐

  1. SSL证书是要怎么部署的,SSL证书怎么安装你知道吗?

    谈到SSL证书相信大家现在已经不会陌生了,网站想要取得用户的信任,需要申请相应的SSL证书,通过SSL证书的的申请和安装,签署相应的协议,从而取得SSL证书的服务,为用户更好的提供网站信息数据服务.S ...

  2. Centos安装Nginx并使用acme脚本配置SSL证书

    仅做记录供以后查看,所有代码来自互联网查找整理 1. 更新yum源 yum update 2. 查看防火墙并开放所需端口 firewall-cmd --zone=public --list-ports ...

  3. Elastic Stack容器化部署拓展(Https、AD域集成)并收集Cisco设备的日志信息

    前言: 还记得在去年的笔记中提到过EFK(Elasticsearch-Filebeat-Kibana)的部署,但是其中的内容相对简单,也没有提到一些额外的Elastic Stack的特性.链接如下:h ...

  4. Telegraf-Influxdb-Grafana容器化部署拓展(Https、AD域、告警集成)并监控Cisco设备指标

    前言: 还记得在去年的笔记中提到过使用python的pysnmp模块,配合Influxdb,Grafana收集Cisco设备指标.链接如下:https://blog.csdn.net/tushanpe ...

  5. windows server 2016 活动目录部署系列(十一)AD域控上安装证书服务器

    一.想要实现的效果 在活动目录(Active Diretory)域控上安装证书服务器. 二.具体的操作流程 2.1.添加角色和功能 可以有两种添加方式[一种是:点击"仪表盘-->添加角 ...

  6. (Spring笔记)SpringBoot-v2.5.3部署阿里云SSL证书——.pfx

    目录 1.前言 2.配置须知 3.准备SSL证书--xxx.pfx格式 4.拷贝证书文件至SpringBoot工程 5.SpringBoot配置文件.yml--引入SSL证书参数 6.SpringBo ...

  7. linux如何配浏览器证书,部署国密SSL证书,如何兼容国际主流浏览器?

    转自: 国密算法在主流操作系统.浏览器等客户端中,还没有实现广泛兼容.因此,在面向开放互联网的产品应用中,国密算法无法得到广泛应用.比如,在SSL证书应用领域,由于国际主流浏览器不信任国密算法,如果服 ...

  8. 购买部署阿里免费ssl证书的步骤

    ssl证书购买页面 购买后如下 点击证书申请填写证书信息 下一步 需要验证信息 添加域名解析记录,内容是上面的截图,需要到自己的域名添加 签发成功后进行部署 需要一台http服务器,这里以nginx为 ...

  9. IIS部署阿里云SSL证书

    一.首先登陆阿里云账号,我这里使用得是免费阿里云证书.可申请10个 购买后在ssl证书管理控制台可看到自己购买的ssl 二.申请证书 点击ssl对应的申请按钮填写相应内容,我这里选择的是文件验证 三. ...

最新文章

  1. Linux 下的NFS server 架设基础及方法
  2. Fast Radial Symmetry Transform/快速径向对称变换
  3. Py之pandas:pandas的read_excel()函数中各参数说明及函数使用方法讲解
  4. 第三次学JAVA再学不好就吃翔(part112)--内存输出流
  5. ruby中的回调方法和钩子方法
  6. 天正暖通天圆地方在哪_2020位于太白山景区海拔3511米天圆地方景点就变成了很多人望而却步的地方_天圆地方-评论-去哪儿攻略...
  7. 关于Servlet出现乱码问题
  8. python func函数用法_python教程:3个非常有用的内置函数
  9. Linux 中如何启用和禁用网卡?
  10. 67. magento timezone
  11. 一种去水印的营业执照识别方法
  12. structs2本地(国际)化
  13. word参考文献编号、引用、修改
  14. 华为交换机主备命令_华为交换机命令汇总
  15. Ruby语言介绍(二)——Ruby基本语法(语言基础)
  16. 离散元 python_开源离散元软件YADE的安装与编译(基于ubuntu18.04) | 望天博客
  17. 在web服务器上运行html文件,再调用cgi打开txt文件
  18. java上传微博图床_php上传图片到微博图床
  19. MySql 练习- 留存率计算
  20. 4阶显式Runge-Kutta法解常微分方程的通用程序--python实现

热门文章

  1. 中国有句俗语叫“三天打鱼两天晒网”。 某人从2010年1月1日起开始“三天打鱼两天晒网”, 问这个人在以后的某一天中是“打鱼”还是“晒网”
  2. Java多线程系列—多线程带来的问题(05)
  3. .NET经典图书推荐(上)
  4. Praat脚本-022 | 提取时长和音强
  5. 生产者与消费者问题------legend050709
  6. 服务器系统fluent,用云服务器算fluent
  7. Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection brok
  8. NUCLEO-L476RG开发板学习笔记汇总
  9. 只需一步,永久白嫖!请低调使用!
  10. Debug 集子[更新中]