如何部署Harbor并使用SAN签发的证书实现HTTPS加密?

2026-04-11 03:102阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1107个文字,预计阅读时间需要5分钟。

如何部署Harbor并使用SAN签发的证书实现HTTPS加密?

安装依赖:Harbor依赖Docker Compose和Docker。

安装Docker Compose:从GitHub下载最新版本的Docker Compose的二进制包:[下载链接](https://github.com/docker/compose/releases)

下载后上传到服务器,并解压使用。

安装Docker Compose:shsudo mv docker-compose-LATEST-Linux-x86_64 /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose

验证安装:shdocker-compose --version

安装Harbor:shdocker-compose -f harbor.yml up -d

安装依赖

harbor依赖于dockercompose和docker

安装docker-compose

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

  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 地址 github.com/goharbor/harbor/releases 

  将下载好的Harbor解压

  

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

  

配置Harbor 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目录

如何部署Harbor并使用SAN签发的证书实现HTTPS加密?

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签发证书)。如果对你有帮助或有建议疑问可以评论区留言!

本文共计1107个文字,预计阅读时间需要5分钟。

如何部署Harbor并使用SAN签发的证书实现HTTPS加密?

安装依赖:Harbor依赖Docker Compose和Docker。

安装Docker Compose:从GitHub下载最新版本的Docker Compose的二进制包:[下载链接](https://github.com/docker/compose/releases)

下载后上传到服务器,并解压使用。

安装Docker Compose:shsudo mv docker-compose-LATEST-Linux-x86_64 /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose

验证安装:shdocker-compose --version

安装Harbor:shdocker-compose -f harbor.yml up -d

安装依赖

harbor依赖于dockercompose和docker

安装docker-compose

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

  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 地址 github.com/goharbor/harbor/releases 

  将下载好的Harbor解压

  

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

  

配置Harbor 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目录

如何部署Harbor并使用SAN签发的证书实现HTTPS加密?

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签发证书)。如果对你有帮助或有建议疑问可以评论区留言!