当前位置 : 主页 > 编程语言 > 其它开发 >

部署harbor并实现https(SAN签发证书)

来源:互联网 收集:自由互联 发布时间:2022-07-22
安装依赖 harbor依赖于dockercompose和docker 安装docker-compose   从Github上下载它的二进制包来使用,最新发行的版本地址:   https://github.com/docker/compose/releases   下载后上传到服务器  
安装依赖

harbor依赖于dockercompose和docker

 

安装docker-compose

  从Github上下载它的二进制包来使用,最新发行的版本地址:

  https://github.com/docker/compose/releases

  下载后上传到服务器

   移动到/usr/local/bin目录下直接系统全局变量下使用

root@Harbor:/tools# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

  

  将可执行权限应用于二进制文件:

chmod +x /usr/local/bin/docker-compose

 

  查看版本信息

root@Harbor:/tools# docker-compose version
Docker Compose version v2.3.4

 

安装Harbor

  GitHub 地址  https://github.com/goharbor/harbor/releases 

  将下载好的Harbor解压

  

 

  将模板文件复制一份新的yml

  

 

配置Harbor https认证

       如果使用containerd部署容器使用harbor则需要参考官网说明,与传统docker部署的Harbor自签发 SSL证书不同需要使用SAN包含多域名签发对象:

       https://goharbor.io/docs/2.4.0/install-config/configure-https/

  

  创建自签发SSL

root@Harbor:/usr/local/harbor# mkdir /usr/local/harbor/certs
root@Harbor:/usr/local/harbor# cd certs/

#创建CA私钥
root@Harbor:/usr/local/harbor/certs# openssl genrsa -out ca.key 4096

#自签名机构生成CA证书
root@Harbor:/usr/local/harbor/certs# openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Jangsu/L=Nanjing/O=example/OU=Personal/CN=cncf.net" \
-key ca.key \
-out ca.crt

#参数说明:
## C,Country,代表国家
## ST,STate,代表省份
## L,Location,代表城市
## O,Organization,代表组织,公司
## OU,Organization Unit,代表部门
## CN,Common Name,代表服务器域名
## emailAddress,代表联系人邮箱地址。

#客户端私钥证书生成
root@Harbor:/usr/local/harbor/certs# openssl genrsa -out cncf.net.key 4096

root@Harbor:/usr/local/harbor/certs# openssl req -sha512 -new \
-subj "/C=CN/ST=Jangsu/L=Nanjing/O=example/OU=Personal/CN=cncf.net" \
-key cncf.net.key \
-out cncf.net.csr

#生成多个域名请求
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=cncf.com
DNS.2=harbor.cncf.net
DNS.3=harbor.cncf.local
EOF

#使用自签名CA签发证书
root@Harbor:/usr/local/harbor/certs# openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in cncf.net.csr \
-out cncf.net.crt

 

 

  配置harbor配置文件

#修改域名和https SSL签发的私钥和证书路径
root@Harbor:/usr/local/harbor# vim harbor.yml
hostname: harbor.cncf.net

# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /usr/local/harbor/certs/cncf.net.crt
  private_key: /usr/local/harbor/certs/cncf.net.key
  
 data_volume: /data

 

  建立Harbor数据目录,并使用数据盘挂载到/data目录

root@Harbor:/usr/local/harbor# mkdir /data

 

  安装Harbor

root@Harbor:/usr/local/harbor# ./install.sh --help

Note: Please set hostname and other necessary attributes in harbor.yml first. DO NOT use localhost or 127.0.0.1 for hostname, because Harbor needs to be accessed by external clients.
Please set --with-notary if needs enable Notary in Harbor, and set ui_url_protocol/ssl_cert/ssl_cert_key in harbor.yml bacause notary must run under https. 
Please set --with-trivy if needs enable Trivy in Harbor
Please set --with-chartmuseum if needs enable Chartmuseum in Harbor

#--with-trivy  开启trivy扫描

root@Harbor:/usr/local/harbor# ./install.sh --with-trivy --with-chartmuseum

 

   安装完成

 

 

  执行安装后访问harbor验证https  

 

 

 

 

  

  使用域名访问:电脑配置hosts本地解析(配置略)

  

 

  密码则为配置文件中设置的123456


 

  docker 客户端配置证书验证,并推送镜像到Harbor

  创建证书的名称必须是harbor域名的名称

#docker客户端创建证书保留位置
root@ubuntu20:~# mkdir /etc/docker/certs.d/harbor.cncf.net -p

#Harbor将证书发送给客户端
root@Harbor:/usr/local/harbor/certs# scp cncf.net.crt 192.168.119.110:/etc/docker/certs.d/harbor.cncf.net/

#docker客户端配置hosts域名解析Harbor
root@ubuntu20:~# vim /etc/hosts
192.168.119.10 harbor.cncf.net

#docker登录harbor
root@ubuntu20:~# docker login harbor.cncf.net
Username: admin
Password:

 

  登录成功

  

   新建项目

 

  docker push推送镜像到harbor

root@ubuntu20:~# docker tag web/nginx:1.20.2 harbor.cncf.net/web/nginx:1.20.2
root@ubuntu20:~# docker push  harbor.cncf.net/web/nginx:1.20.2

 

 

查看Harbor

 

 

  以上就是关于部署harbor并实现https(SAN签发证书)如果对你有帮助或有建议疑问可以评论区留言!

 

上一篇:B2B企业的5大数字化转型战略
下一篇:没有了
网友评论