建议参考github搭建 https://github.com/goharbor/harbor-helm

Docker--------Harbor registry安全认证搭建 [ Https ]

wget http://harbor.orientsoft.cn/harbor-v1.3.0-rc4/harbor-offline-installer-v1.3.0-rc4.tgz
harbor-offline-installer-v1.3.0-rc4.tgz

Harbor的架构
Harbor系列

主要组件包括proxy,他是一个nginx前端代理,主要是分发前端页面ui访问和镜像上传和下载流量,上图中通过深蓝色先标识;ui提供了一个web管理页面,当然还包括了一个前端页面和后端API,底层使用mysql数据库;registry是镜像仓库,负责存储镜像文件,当镜像上传完毕后通过hook通知ui创建repository,上图通过红色线标识,当然registry的token认证也是通过ui组件完成;adminserver是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置,通过灰色线标识;jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log,上图通过紫色线标识;log是日志汇总组件,通过docker的log-driver把日志汇总到一起,通过浅蓝色线条标识。

1.证书生成

[root@master cert]# pwd
/data/cert
[root@master cert]# ls
hh.registry.com.crt hh.registry.com.csr hh.registry.com.key hh.srl server.crt server.csr server.key server.srl

带域名参考
[root@harbor cert]# openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout ca.key -x509 -days 365 \
-out ca.crt -subj "/C=CN/L=wuhan/O=lisea/CN=harbor-registry"

http://blog.51cto.com/lisea/1936839

Harbor系列

mkdir -p /data/cert && cd /data/cert
#创建自己的CA证书(不使用第三方权威机构的CA来认证,自己充当CA的角色)
openssl genrsa -out ca.key 2048 # 生成根证书私钥(无加密)
#生成自签名证书(使用已有私钥ca.key自行签发根证书)
openssl req -x509 -new -nodes -key ca.key -days 10000 -out ca.crt -subj “/CN=Harbor-ca”

req  产生证书签发申请命令
-x509 签发X.509格式证书命令。X.509是最通用的一种签名证书格式。
-new  生成证书请求
-key  指定私钥文件
-nodes 表示私钥不加密
-out   输出
-subj 指定用户信息
-days 有效期

创建服务器端证书
#生成服务器端私钥和CSR签名请求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout server.key -out server.csr    # 一路回车
#签发服务器证书
echo subjectAltName = IP:192.168.80.42 > extfile.cnf
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 365 -extfile extfile.cnf -out server.crt

x509  签发X.509格式证书命令。
-req   表示证书输入请求。
-days  表示有效天数
-extensions 表示按OpenSSL配置文件v3_req项添加扩展。
-CA   表示CA证书,这里为ca.crt
-CAkey  表示CA证书密钥,这里为ca.key
-CAcreateserial 表示创建CA证书序列号
-extfile  指定文件

node不确定是否要这样做
将 ca 根证书依次复制到上述创建的目录中
cp ca.crt /etc/docker/certs.d/192.168.80.42
cp server.crt /etc/docker/certs.d/192.168.80.42

2.启动

docker-compose start /down

docker login -u test -p Harbor12345 hh.registry.com
docker push hh.registry.com/test/nginx:v1.0.1
docker rmi hh.registry.com/test/nginx:v1.0.1
docker pull hh.registry.com/test/nginx:v1.0.1

3.Harbor WEB的使用

https://www.cnblogs.com/huangjc/p/6270405.html?utm_source=itdadao&utm_medium=referral

注意事项

cat /etc/pki/tls/openssl.cnf
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
[ v3_ca ]
subjectAltName = IP:172.1.1.131