Harbor基于官方认证HTTPS证书部署指南

一、HTTPS证书部署概述

在生产环境中,为Harbor配置HTTPS加密访问是必不可少的安全措施。本文将详细介绍如何使用官方认证的SSL/TLS证书为Harbor启用HTTPS协议,确保镜像传输的安全性和完整性。

二、证书准备阶段

2.1 创建证书目录

# 进入Harbor安装目录
cd /oldboyedu/softwares/harbor/

# 创建专用证书目录
mkdir certs && cd certs

2.2 获取证书文件

方案一:使用已有证书(推荐)

  • 将您从CA机构获取的证书文件上传至此目录
  • 通常需要以下文件:
    • 证书文件(.crt或.pem)
    • 私钥文件(.key)
    • 可能的中间证书链文件

方案二:使用测试证书(仅限非生产环境)

wget http://192.168.16.253/Linux92/Docker/day14-/softwares/yinzhengjie.com_nginx.zip
unzip yinzhengjie.com_nginx.zip

解压后将得到:

  • yinzhengjie.com_bundle.crt(证书文件)
  • yinzhengjie.com.key(私钥文件)
  • 其他相关文件

三、配置Harbor使用HTTPS

3.1 修改Harbor配置文件

编辑harbor.yml文件:

# 必须与证书签发的域名完全一致
hostname: www.yinzhengjie.com

# HTTPS配置部分取消注释并修改
https:
  port: 443  # HTTPS默认端口
  certificate: /oldboyedu/softwares/harbor/certs/yinzhengjie.com_nginx/yinzhengjie.com_bundle.crt
  private_key: /oldboyedu/softwares/harbor/certs/yinzhengjie.com_nginx/yinzhengjie.com.key

3.2 重新部署Harbor

# 执行安装脚本(保留原有数据)
./install.sh --with-chartmuseum

关键参数说明:

  • --with-chartmuseum:同时安装Chart仓库服务
  • 脚本会自动检测现有配置并保留数据

四、客户端访问配置

4.1 本地hosts解析(测试环境)

在客户端机器(Windows系统)修改hosts文件:

# C:\Windows\System32\drivers\etc\hosts
10.0.0.102 www.yinzhengjie.com

4.2 Docker客户端配置

修改/etc/docker/daemon.json

{
  "insecure-registries": [],
  "registry-mirrors": [],
  "debug": false,
  "experimental": false
}

重要:生产环境应使用可信证书,无需配置insecure-registries

五、验证HTTPS访问

5.1 Web界面访问

浏览器访问:

https://www.yinzhengjie.com/harbor/projects

验证要点:

  1. 浏览器地址栏显示安全锁标志
  2. 点击锁标志可查看证书详情
  3. 确保证书颁发机构显示为可信CA

5.2 Docker客户端验证

# 登录Harbor仓库
docker login https://www.yinzhengjie.com

# 拉取镜像测试
docker pull www.yinzhengjie.com/library/nginx:latest

六、高级配置建议

6.1 证书自动续期

对于Let's Encrypt等短期证书:

  1. 设置自动续期脚本
  2. 续期后重新加载Harbor配置:
docker-compose down
./prepare
docker-compose up -d

6.2 强制HTTPS跳转

harbor.yml中配置:

# 启用HTTP到HTTPS的重定向
http:
  port: 80
  relativeurls: false

6.3 证书链完整性

确保证书链完整,避免中间证书缺失:

# 验证证书链
openssl verify -CAfile yinzhengjie.com_bundle.crt yinzhengjie.com_bundle.crt

七、故障排查指南

7.1 常见问题

  1. 证书不受信任

    • 确保证书链完整
    • 检查时间同步(NTP服务)
  2. 域名不匹配

    • 检查hostname配置与证书SAN是否一致
    • 确保证书包含所有使用的域名变体
  3. 端口冲突

    • 确认443端口未被占用
    • 检查防火墙设置

7.2 日志检查

# 查看Nginx容器日志
docker logs harbor-nginx

# 检查核心服务日志
docker logs harbor-core

八、生产环境最佳实践

  1. 证书管理

    • 使用企业级证书管理解决方案
    • 实现证书生命周期自动化管理
  2. 安全加固

    • 启用HSTS头部
    • 配置强密码套件
  3. 监控告警

    • 设置证书过期监控
    • 配置HTTPS可用性检查
  4. 备份策略

    • 定期备份证书和私钥
    • 存储在安全的加密位置

九、附录:证书类型参考

证书类型 适用场景 有效期 特点
DV SSL 测试/开发环境 1年 快速签发,仅验证域名所有权
OV SSL 企业生产环境 1-2年 验证企业真实性,中等信任度
EV SSL 高安全要求场景 1-2年 最高信任级别,显示绿色企业名
通配符证书 多子域名环境 1-2年 覆盖*.domain.com所有子域名
多域名证书 多个不同域名 1-2年 单证书保护多个完全独立域名

通过本文介绍的步骤,您已经成功为Harbor配置了官方认证的HTTPS证书,大幅提升了仓库的安全等级。建议定期审查证书状态并根据业务发展需求调整安全策略。

posted on 2025-04-13 18:23  Leo-Yide  阅读(402)  评论(0)    收藏  举报