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/
Harbor容器安装以及相关特性部署与使用(SSL证书+AD域)相关推荐
- SSL证书是要怎么部署的,SSL证书怎么安装你知道吗?
谈到SSL证书相信大家现在已经不会陌生了,网站想要取得用户的信任,需要申请相应的SSL证书,通过SSL证书的的申请和安装,签署相应的协议,从而取得SSL证书的服务,为用户更好的提供网站信息数据服务.S ...
- Centos安装Nginx并使用acme脚本配置SSL证书
仅做记录供以后查看,所有代码来自互联网查找整理 1. 更新yum源 yum update 2. 查看防火墙并开放所需端口 firewall-cmd --zone=public --list-ports ...
- Elastic Stack容器化部署拓展(Https、AD域集成)并收集Cisco设备的日志信息
前言: 还记得在去年的笔记中提到过EFK(Elasticsearch-Filebeat-Kibana)的部署,但是其中的内容相对简单,也没有提到一些额外的Elastic Stack的特性.链接如下:h ...
- Telegraf-Influxdb-Grafana容器化部署拓展(Https、AD域、告警集成)并监控Cisco设备指标
前言: 还记得在去年的笔记中提到过使用python的pysnmp模块,配合Influxdb,Grafana收集Cisco设备指标.链接如下:https://blog.csdn.net/tushanpe ...
- windows server 2016 活动目录部署系列(十一)AD域控上安装证书服务器
一.想要实现的效果 在活动目录(Active Diretory)域控上安装证书服务器. 二.具体的操作流程 2.1.添加角色和功能 可以有两种添加方式[一种是:点击"仪表盘-->添加角 ...
- (Spring笔记)SpringBoot-v2.5.3部署阿里云SSL证书——.pfx
目录 1.前言 2.配置须知 3.准备SSL证书--xxx.pfx格式 4.拷贝证书文件至SpringBoot工程 5.SpringBoot配置文件.yml--引入SSL证书参数 6.SpringBo ...
- linux如何配浏览器证书,部署国密SSL证书,如何兼容国际主流浏览器?
转自: 国密算法在主流操作系统.浏览器等客户端中,还没有实现广泛兼容.因此,在面向开放互联网的产品应用中,国密算法无法得到广泛应用.比如,在SSL证书应用领域,由于国际主流浏览器不信任国密算法,如果服 ...
- 购买部署阿里免费ssl证书的步骤
ssl证书购买页面 购买后如下 点击证书申请填写证书信息 下一步 需要验证信息 添加域名解析记录,内容是上面的截图,需要到自己的域名添加 签发成功后进行部署 需要一台http服务器,这里以nginx为 ...
- IIS部署阿里云SSL证书
一.首先登陆阿里云账号,我这里使用得是免费阿里云证书.可申请10个 购买后在ssl证书管理控制台可看到自己购买的ssl 二.申请证书 点击ssl对应的申请按钮填写相应内容,我这里选择的是文件验证 三. ...
最新文章
- Linux 下的NFS server 架设基础及方法
- Fast Radial Symmetry Transform/快速径向对称变换
- Py之pandas:pandas的read_excel()函数中各参数说明及函数使用方法讲解
- 第三次学JAVA再学不好就吃翔(part112)--内存输出流
- ruby中的回调方法和钩子方法
- 天正暖通天圆地方在哪_2020位于太白山景区海拔3511米天圆地方景点就变成了很多人望而却步的地方_天圆地方-评论-去哪儿攻略...
- 关于Servlet出现乱码问题
- python func函数用法_python教程:3个非常有用的内置函数
- Linux 中如何启用和禁用网卡?
- 67. magento timezone
- 一种去水印的营业执照识别方法
- structs2本地(国际)化
- word参考文献编号、引用、修改
- 华为交换机主备命令_华为交换机命令汇总
- Ruby语言介绍(二)——Ruby基本语法(语言基础)
- 离散元 python_开源离散元软件YADE的安装与编译(基于ubuntu18.04) | 望天博客
- 在web服务器上运行html文件,再调用cgi打开txt文件
- java上传微博图床_php上传图片到微博图床
- MySql 练习- 留存率计算
- 4阶显式Runge-Kutta法解常微分方程的通用程序--python实现
热门文章
- 中国有句俗语叫“三天打鱼两天晒网”。 某人从2010年1月1日起开始“三天打鱼两天晒网”, 问这个人在以后的某一天中是“打鱼”还是“晒网”
- Java多线程系列—多线程带来的问题(05)
- .NET经典图书推荐(上)
- Praat脚本-022 | 提取时长和音强
- 生产者与消费者问题------legend050709
- 服务器系统fluent,用云服务器算fluent
- Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection brok
- NUCLEO-L476RG开发板学习笔记汇总
- 只需一步,永久白嫖!请低调使用!
- Debug 集子[更新中]