环境:docker docker-compose
1 创建ca证书
mkdir -p /data/cert
cd /data/cert
2生成 CA 的 key
openssl genrsa -out ca.key 4096
3生成 CA 的 crt
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=chinatelecom/OU=ecloudcaas/CN=192.168.1.198" \
-key ca.key \
-out ca.crt
生成自己域名的 key
openssl genrsa -out 192.168.1.198.key 4096
生成自己域名的 csr
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=chinatelecom/OU=ecloudcaas/CN=192.168.1.198" \
-key 192.168.1.198.key \
-out 192.168.1.198.csr
生成一个 openssl 命令需要的外部配置文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
IP=192.168.1.198
EOF
通过 ext 和 csr 生成 crt
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in 192.168.1.198.csr \
-out 192.168.1.198.crt
将服务端的 crt 转换成客户端用的 cert
cd /data/cert
openssl x509 -inform PEM -in 192.168.1.198.crt -out 192.168.1.198.cert
将带域名的 cert,key 和 ca.crt 拷贝到 docker client 所在主机的 /etc/docker/certs.d/192.168.1.198/ 目录下
——————————————————————至此 https 前置设置结束
在docker客户端(或者说需要向这个仓库提交镜像的docker主机)注意 json 属性之间要用逗号分隔哦
如果你没有这个文件 那就这么执行 否则 请直接添加 "insecure-registries":["http://192.168.1.198"]
cat > /etc/docker/daemon.json << EOF
{ "insecure-registries":["http://192.168.1.198"] }
EOF
systemctl daemon-reload
systemctl restart docker
安装
mkdir -p /home/harbor/
wget -P /home/harbor/ https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.0.tgz
cd /home/harbor/
tar xf harbor-offline-installer-v1.9.0.tgz
cd /home/harbor/harbor
cp harbor.yml harbor.yml.bak
cd /home/harbor/harbor/
修改配置文件
vim harbor.yml
https:
port: 443
certificate: /home/harbor/cert/192.168.1.198.crt
private_key: /home/harbor/cert/192.168.1.198.key
设置localhost = ip #其他docker访问仓库的ip 或者域名
cd /home/harbor/harbor/
./prepare
./install
————————————————————————至此 安装结束
如果哪里有问题 请直接说出来我会及时纠正