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

步骤一:部署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/

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: Harbor是一个企业级的Docker镜像仓库,在企业中被广泛使用。为了确保Harbor的安全性,防止数据泄露和攻击,阿里云为其提供了SSL证书SSL证书(Secure Sockets Layer)是一种网络协议,它在客户端与服务器之间创建一个加密连接,从而提供网络通信的安全性。 使用SSL证书可以确保Harbor的安全性,使得数据在传输过程中不会被泄露或者被黑客攻击。阿里云提供的SSL证书具有高度的安全性和可靠性,可以大大提高Harbor的安全性和稳定性。 总的来说,阿里云提供的SSL证书是一项非常重要的技术支持,可以确保Harbor的安全性和稳定性。同时,人们在使用Harbor的时候也可以感受到更好的用户体验,提高工作效率和安全性。 ### 回答2: Harbor是一个企业级的开源容器镜像仓库,旨在帮助用户管理和存储Docker镜像,同时为用户提供了丰富的安全性管理功能,其中就包括基于阿里SSL证书的安全性管理。 SSL证书是用于加密通信的一种数字证书,可以确保数据传输的安全性和私密性。阿里云的SSL证书可以为Harbor提供强大的加密解密功能,以确保用户的数据得到充分的保护。 具体而言,Harbor使用的是阿里云的SSL证书服务。当用户访问Harbor时,其浏览器会发送一个连接请求,Harbor服务器会将分配给其的SSL证书发送给浏览器,这个SSL证书可以包含其公钥和其数字签名。浏览器会验证证书的签名并将其公钥解析出来。之后,浏览器和Harbor服务器之间所有的通信都将使用这个公钥进行加密和解密,保证了通信过程中的数据安全性。 总的来说,使用阿里SSL证书可以为Harbor带来更加安全的通信和存储环境,可以保证用户数据的私密性和保密性,同时也帮助用户更好地掌控和管理自己的镜像仓库。 ### 回答3: Harbor是一款开源的容器registry,它以私有仓库的形式为企业提供容器镜像管理服务。而SSL证书则是保证HTTPS秘钥交换过程中通讯安全的加密证书。阿里云提供的SSL证书服务能够为Harbor提供更加安全可靠的镜像管理服务。 阿里SSL证书是一款全球领先的数字证书品牌,提供了具有高度可信性和安全性的安全服务。不仅在国内,在全球范围内都享有较高的知名度和声誉。而Harbor为企业提供镜像管理服务,为企业应用提供了高效、便捷的操作流程和开发工具,其针对企业需求的定制化服务以及同时考虑到用户的使用体验,阿里SSL证书的运用增加了整个应用服务的安全性,为企业的数据安全提供了更加可靠的保障。 此外,阿里云SSL证书提供了多种安全验证和颁发模式,能根据企业的不同需求提供个性化的解决方案。同时,阿里SSL证书的自动化管理功能也大大减轻了企业管理人员在应用部署和管理方面的工作量,提高了部署效率、节省了时间和人力成本。 因此,Harbor使用阿里SSL证书,就能为企业提供更加高效、安全的容器镜像管理服务,满足企业更加高端、个性化的需求,为企业的应用服务提供更可靠的保障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值