【harbor】--配置https

使用自建的 CA 证书来自签署和启用 HTTPS 通信。

(1)生成 CA认证

  • 使用 OpenSSL 生成一个 2048位的私钥
  • 这是 自建 CA(证书颁发机构) 的私钥,后续会用它来签发证书。
bash 复制代码
# 1创建CA认证
cd 到harbor
[root@localhost harbor]# pwd
/haohao/harbor

# 创建一个文件(名字随便取)
mkdir mycert
openssl genrsa -out mycert/private.key 2048

(2)创建自签名证书(CA 证书)

bash 复制代码
openssl req -x509 -new -nodes -key mycert/private.key \
-subj "/CN=hh.harbor.com" -days 7120 \
-out mycert/cert.crt
  • 使用刚才的私钥,生成一个 自签名的 X.509 证书(就是 CA 证书)。
  • 有效期是 7120 天(快 20 年了)。
  • -subj "/CN=hh.harbor.com" 表示该证书的域名是这个。
  • 保存为 mycert/cert.crt

这个证书会用在 Harbor 上启用 HTTPS 访问,客户端需要信任这个证书才能避免浏览器警告。

(3) 查看生成的 CA 证书信息

bash 复制代码
openssl x509 -in mycert/cert.crt -noout -text
  • 查看刚生成的自签名证书内容。
  • 包括证书有效期、使用者信息、公钥内容等。

(4) 修改 Harbor 配置文件(启用 HTTPS)

yaml 复制代码
hostname: hh.harbor.com

https:
  port: 444
  certificate: /haohao/harbor/mycert/cert.crt
  private_key: /haohao/harbor/mycert/private.key
  • 修改 harbor.yml 配置文件,告诉 Harbor:

    • 用哪个证书来启用 HTTPS(crt 文件)
    • 用哪个私钥来解密 HTTPS 通信(key 文件)
    • hostname 设置为 Harbor 的访问域名

(5) 安装 Harbor

bash 复制代码
./install.sh
  • 安装 Harbor,并根据修改后的 harbor.yml 重新部署服务。
  • Harbor 会基于你的 HTTPS 配置自动启用安全访问。

(6) 访问 Web UI,可能遇到浏览器警告

  • 浏览器看到是自签名证书,因为它不是由浏览器信任的权威 CA 签发的,所以会警告。
  • 解决方法(仅开发环境下可用):输入 thisisunsafe,绕过浏览器阻止,强制访问页面。

作用:

  • 防止账号密码被明文传输
  • 提高安全性
  • 支持 Docker 客户端登录 Harbor 时使用安全通道(docker login https://harbor...