基于 HTTPS 方式部署 harbor 仓库

前提:

        基于 HTTP 协议部署 harbor 仓库-CSDN博客 部署 harbor 仓库

一、 配置 CA 证书

1. 创建工作目录

mkdir -pv /app/tools/harbor/certs/{ca,harbor-server,docker-client}

2. 进入到 harbor 证书存放目录

cd /app/tools/harbor/certs/
[root@harbor /app/tools/harbor/certs]# ll
total 0
drwxr-xr-x 2 root root 6 Apr 21 15:33 ca
drwxr-xr-x 2 root root 6 Apr 21 15:33 docker-client
drwxr-xr-x 2 root root 6 Apr 21 15:33 harbor-server

3. 生成自建 CA 证书

3.1 创建 CA 私钥

openssl genrsa -out ca/ca.key 4096

3.2 基于自建的CA私钥创建CA证书(注意,证书签发的域名范围)

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

3.3 查看自建证书信息

openssl  x509 -in ca/ca.crt -noout -text

二、配置 harbor server 证书

1. 生成 harbor 服务器的私钥

        注意:将域名更换为自己的域名

openssl genrsa -out harbor-server/harbor253.bihuang.com.key 4096

#注意更换文件前缀

2. harbor服务器基于私钥签发证书认证请求(csr 文件),让自建CA认证

        注意:将域名更换为自己的域名,以及生成文件的前缀名称

openssl req -sha512 -new \
     -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor253.bihuang.com" \
     -key harbor-server/harbor253.bihuang.com.key \
     -out harbor-server/harbor253.bihuang.com.csr

#注意:CN=harbor253.bihuang.com

3. 生成 x509 v3 的扩展文件用于认证

        注意:DNS.1 字段

cat > harbor-server/v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
 
[alt_names]
DNS.1=harbor253.bihuang.com #注意
EOF

4. 基于 x509 v3 的扩展文件认证签发 harbor server 证书

openssl x509 -req -sha512 -days 3650 \
     -extfile harbor-server/v3.ext \
     -CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial \
     -in harbor-server/harbor253.bihuang.com.csr \ #注意
     -out harbor-server/harbor253.bihuang.com.crt  #注意

5. 修改 harbor 的配置文件使用自建证书

[root@harbor /app/tools/harbor/certs]# pwd
/app/tools/harbor/certs

cd ..

[root@harbor /app/tools/harbor]# vim harbor.yml
hostname: harbor253.bihuang.com #修改域名
http:
  port: 80
https:
  port: 443
#填写自己生成的文件路径
  certificate: /app/tools/harbor/certs/harbor-server/harbor253.bihuang.com.crt 
  private_key: /app/tools/harbor/certs/harbor-server/harbor253.bihuang.com.key

6. 重启harbor

[root@harbor /app/tools/harbor]# ./prepare

[root@harbor /app/tools/harbor]# docker-compose down -t 1

[root@harbor /app/tools/harbor]# docker-compose up -d

三、配置 docker 客户端证书

1. 生成 docker 客户端证书

[root@harbor /app/tools/harbor]# cd certs/

#基于 harbor253.bihuang.com.crt,生成 harbor253.bihuang.com.cert
[root@harbor /app/tools/harbor/certs]# openssl x509 -inform PEM -in harbor-server/harbor253.bihuang.com.crt -out docker-client/harbor253.bihuang.com.cert

[root@harbor /app/tools/harbor/certs]# pwd
/app/tools/harbor/certs

[root@harbor /app/tools/harbor/certs]# md5sum docker-client/harbor253.bihuang.com.cert harbor-server/harbor253.bihuang.com.crt 
99ced105f97a0c7f67201f4e54ee7241  docker-client/harbor253.bihuang.com.cert
99ced105f97a0c7f67201f4e54ee7241  harbor-server/harbor253.bihuang.com.crt

2. 拷贝docker clicent 证书文件

[root@harbor /app/tools/harbor/certs]# cp harbor-server/harbor253.bihuang.com.key docker-client/

[root@harbor /app/tools/harbor/certs]# cp ca/ca.crt docker-client/

[root@harbor /app/tools/harbor/certs]# ll -R

四、docker 客户端使用证书

1. docker 客户端创建自建证书的目录结构(注意域名的名称和目录要一致)

[root@docker01 ~]# mkdir -pv /etc/docker/certs.d/harbor253.bihuang.com/

2. 将客户端证书文件进行拷贝

[root@harbor /app/tools/harbor]# scp certs/docker-client/* 192.168.99.181:/etc/docker/certs.d/harbor253.bihuang.com/

3. docker 客户端验证

[root@docker01 ~]# echo 192.168.99.253  harbor harbor253.bihuang.com >> /etc/hosts

[root@docker01 ~]# docker login -u admin -p Harbor12345 harbor253.bihuang.com

4. web 访问

5. 测试成功后,登出

[root@docker01 ~]# docker logout harbor253.bihuang.com
Removing login credentials for harbor253.bihuang.com

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值