【Harbor v2.13.0 详细安装步骤 安装证书启用 HTTPS】

发布于:2025-05-07 ⋅ 阅读:(7) ⋅ 点赞:(0)

Harbor v2.13.0 详细安装步骤(启用 HTTPS)


1. 环境准备

  • 系统要求:至少 4GB 内存,100GB 磁盘空间。

  • 已安装组件

    • Docker(版本 ≥ 20.10)
    • Docker Compose(版本 ≥ v2.0)
  • 域名映射

    echo "192.168.0.223 harbor.host3" | sudo tee -a /etc/hosts
    

2. 下载并解压 Harbor 离线安装包

github下载地址: Release v2.13.0

# 解压到指定目录(如 /opt/harbor)
sudo tar -xzvf harbor-offline-installer-v2.13.0_6.tgz -C /opt
cd /opt/harbor

3. 生成 SSL 证书(自签名)

步骤 1:创建证书目录

sudo mkdir -p /opt/harbor/certs
cd /opt/harbor/certs

步骤 2:生成 CA 根证书

# 生成 CA 私钥
openssl genrsa -out ca.key 4096

# 生成 CA 证书(有效期 10 年)
openssl req -x509 -new -nodes -sha512 -days 3650 \
  -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.host3" \
  -key ca.key \
  -out ca.crt

步骤 3:生成服务器证书

# 生成服务器私钥
openssl genrsa -out harbor.host3.key 4096

# 生成证书签名请求(CSR)
openssl req -sha512 -new \
  -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.host3" \
  -key harbor.host3.key \
  -out harbor.host3.csr

# 生成证书扩展文件(v3.ext)
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage=serverAuth
subjectAltName=@alt_names

[alt_names]
DNS.1=harbor.host3
EOF

# 使用 CA 签发服务器证书
openssl x509 -req -sha512 -days 3650 \
  -extfile v3.ext \
  -CA ca.crt -CAkey ca.key -CAcreateserial \
  -in harbor.host3.csr \
  -out harbor.host3.crt

步骤 4:配置证书权限

sudo chmod 644 /opt/harbor/certs/*

4. 配置 Harbor

编辑 harbor.yml

sudo cp harbor.yml.tmpl harbor.yml
sudo nano harbor.yml
# 关键配置项:
hostname: harbor.host3          # 域名
http:
  #port: 80                      # 禁用 HTTP(设为空或注释)
https:
  port: 443
  certificate: /opt/harbor/certs/harbor.host3.crt
  private_key: /opt/harbor/certs/harbor.host3.key

harbor_admin_password: Harbor12345  # 管理员密码
database:
  password: root123                # 数据库密码
data_volume: /data/harbor          # 数据存储路径

5. 安装 Harbor

注意检查端口是否占用

# 查看 80 端口占用情况
sudo lsof -i :443
# 或使用 netstat 命令
netstat -tuln | grep 443
# 运行安装脚本(自动启动服务)
sudo ./install.sh --with-trivy

6. 验证安装

检查服务状态

docker compose ps
# 预期输出所有服务状态为 "running"

访问 Harbor Web 界面

  • 浏览器访问:https://harbor.host3
  • 用户名:admin
  • 密码:Harbor12345

解决浏览器证书警告

# 将 CA 证书导入系统信任库(以 Ubuntu 为例)
sudo cp /opt/harbor/certs/ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

7. 防火墙配置(如需)

# 开放 443 端口
sudo ufw allow 443/tcp
sudo ufw reload

常见问题解决

1. 常见问题

  • ** 证书不信任错误**

    • 现象x509: certificate signed by unknown authority

    • 解决:确保客户端已正确导入 Harbor 的 ca.crt

    • #Windows 系统
      1.从 Harbor 服务器获取 /opt/harbor/certs/ca.crt 文件,发送到 Windows 客户端
      2.打开证书管理器 win+R    certmgr.msc
      3.导航至 ‌受信任的根证书颁发机构 → 证书‌,右键选择 ‌所有任务 → 导入‌,选择 ca.crt 文件完成导入
      #Ubuntu/Debian
          # 1复制证书到系统目录
          sudo cp ca.crt /usr/local/share/ca-certificates/harbor-ca.crt  
          # 2更新证书库
          sudo update-ca-certificates  
          # 3重启 Docker(若需通过 Docker 访问 Harbor)
          sudo systemctl restart docker  
      #CentOS/RedHat
          # 1复制证书到系统目录
          sudo cp ca.crt /etc/pki/ca-trust/source/anchors/  
          # 2更新证书库
          sudo update-ca-trust  
          # 3重启 Docker
          sudo systemctl restart docker
      #macOS 系统导入 CA 证书
      #‌1钥匙串访问工具‌
          #双击 ca.crt 文件,选择 ‌系统‌ 钥匙串,点击 ‌添加‌。
          #右键证书 → ‌显示简介 → 信任‌,设置为 ‌始终信任‌。
      #‌2终端验证‌
          # 检查证书是否生效
          openssl s_client -connect harbor.host3:443 -showcerts  
      
  • DNS 解析失败

    • 现象Could not resolve host: harbor.host3

    • 解决:检查客户端主机的 /etc/hosts 或 DNS 服务器配置。

    • echo "192.168.0.223 harbor.host3" | sudo tee -a /etc/hosts
      
  • IP 访问证书警告

    • 现象:访问 https://192.168.0.223 提示证书无效。

    • 解决:证书必须包含 IP SAN(即 alt_names 中添加 IP.1 = 192.168.0.223)。

    • 现象:浏览器提示 “不安全连接”。

    • 解决:将 ca.crt 导入浏览器或系统信任库。

2. Harbor 服务未启动

  • 检查日志

    tail -f /var/log/harbor/*.log
    
  • 重新部署

    docker compose down -v
    sudo ./install.sh
    

3. Docker 客户端信任自签名证书

# 在 Docker 客户端机器操作
sudo mkdir -p /etc/docker/certs.d/harbor.host3
sudo scp root@harbor.host3:/opt/harbor/certs/ca.crt /etc/docker/certs.d/harbor.host3/
sudo systemctl restart docker
# 在 Harbor 服务器检查防火墙规则
sudo ufw allow 443/tcp
sudo ufw reload

4.Docker 客户端推送镜像

# 登录 Harbor
docker login harbor.host3 -u admin -p Harbor12345

# 推送测试镜像
docker pull nginx:latest
docker tag nginx:latest harbor.host3/library/nginx:latest
docker push harbor.host3/library/nginx:latest

Harbor 核心功能与使用指南


一、Harbor 与传统 Docker Registry 的核心优势

  1. 企业级功能支持
    • 基于角色的访问控制(RBAC):支持项目级别的权限管理(如管理员、开发者、访客角色),可精细控制用户对镜像的读写权限。
    • 镜像复制与同步:支持跨 Harbor 实例的镜像自动同步,适用于混合云或多数据中心场景。
    • 漏洞扫描与安全审计:集成 Trivy 等工具自动扫描镜像漏洞,并记录所有操作日志用于审计。
    • LDAP/AD 集成:可直接对接企业已有的 LDAP/AD 系统,统一用户认证。
  2. 易用性与扩展性
    • 图形化界面(Web UI):提供直观的镜像管理、项目配置和用户权限设置界面。
    • RESTful API:支持自动化集成到 CI/CD 流程中,例如通过 API 创建项目或管理镜像。
    • 多存储后端支持:支持本地存储、S3、Ceph 等存储方案,适应不同规模的部署需求。
  3. 与 Kubernetes 生态的深度集成
    Harbor 可无缝对接 Kubernetes,作为私有镜像仓库,支持 Helm Chart 存储(需启用 ChartMuseum)。

二、Harbor 的核心使用场景

  1. 企业内部镜像管理
    • 统一存储企业内部开发的 Docker 镜像,避免依赖公共仓库。
    • 通过项目隔离不同团队的镜像资源,例如 project-frontendproject-backend
  2. 混合云镜像分发
    • 在多个 Harbor 实例间配置镜像复制策略,实现跨云或跨地域的镜像同步。
  3. 安全合规与审计
    • 扫描生产环境镜像的漏洞,记录操作日志以满足合规要求。

三、Harbor 镜像推送与拉取操作

1. 推送镜像到 Harbor

  • 步骤 1:登录 Harbor

    docker login harbor.host3 -u admin -p Harbor12345
    

    注意:若使用自签名证书,需将 CA 证书放入 /etc/docker/certs.d/harbor.host3

  • 步骤 2:打标签
    镜像名称需包含 Harbor 地址和项目名称:

    docker tag nginx:latest harbor.host3/myproject/nginx:v1
    
  • 步骤 3:推送镜像

    docker push harbor.host3/myproject/nginx:v1
    

2. 从 Harbor 拉取镜像

docker pull harbor.host3/myproject/nginx:v1

3. 镜像管理

  • Web UI 操作:通过浏览器访问 https://harbor.host3,可在项目中查看、删除镜像或配置复制策略。

  • API 操作:使用 RESTful API 自动化管理,例如列出所有镜像:

    curl -X GET "https://harbor.host3/api/v2.0/projects/myproject/repositories" -H "Authorization: Bearer <TOKEN>"
    

四、Harbor 与其他工具对比

工具 优势 局限性
Docker Hub 公共镜像丰富,适合个人开发者 缺乏企业级功能,安全性低
Nexus 3 支持多种仓库类型(Maven、Docker) Docker 管理功能较 Harbor 弱
Harbor 企业级安全、镜像复制、漏洞扫描 部署复杂度较高

五、Harbor 维护与管理

  1. 日志与监控
    • 日志收集:Harbor 日志默认存储在 /var/log/harbor,可通过 ELK 或 Prometheus 集成实现集中监控。
    • 服务状态检查:使用 docker-compose ps 查看容器运行状态。
  2. 备份与恢复
    • 数据备份:定期备份 Harbor 数据库 (harbor-db) 和存储卷 (/data/harbor)。
    • 配置文件备份:保存 harbor.yml 和证书文件,便于快速恢复。
  3. 升级与扩展
    • 版本升级:下载新版本安装包,运行 ./prepare./install.sh,注意迁移旧数据。
    • 高可用部署:通过 Redis 集群和 Ceph 存储实现 Harbor 组件的高可用。
  4. 安全维护
    • 定期更新证书:自签名证书需每年更新,避免服务中断。
    • 漏洞扫描策略:配置定时扫描任务,拦截高风险镜像。

六、常见问题解决

  1. 拉取镜像超时
    • 检查网络:确保防火墙开放 443 端口(HTTPS)或 80 端口(HTTP)。
  2. Web UI 无法访问
    • 服务状态:运行 docker-compose logs 查看 Nginx 或 Core 服务日志。

七、总结

Harbor 是企业级容器镜像管理的首选工具,其核心价值在于 安全性可扩展性易用性。通过合理配置镜像推送、权限管理和存储后端,可大幅提升 DevOps 流程的效率。维护时需重点关注日志监控、备份策略和高可用部署,确保服务稳定


网站公告

今日签到

点亮在社区的每一天
去签到