自定义 Harbor 令牌服务

默认情况下,Harbor 使用其自己的私钥和证书与 Docker 客户端进行身份验证。本主题介绍如何选择性地自定义配置以使用您自己的密钥和证书。

Harbor 要求 Docker 客户端使用令牌访问 Harbor 注册中心。生成令牌的过程类似于 Distribution Registry v2 authentication。首先,您向令牌服务发出请求以获取令牌。令牌由私钥签名。之后,您使用令牌向 Harbor 注册中心发出新请求,Harbor 注册中心使用根证书捆绑包中的公钥验证令牌。然后 Harbor 注册中心授权 Docker 客户端推送和拉取镜像。

生成根证书

  1. 生成私钥。

    openssl genrsa -out private_key.pem 4096
    
  2. 生成证书。

    openssl req -new -x509 -key private_key.pem -out root.crt -days 3650
    
  3. 输入要包含在证书请求中的信息。

    您即将输入的内容称为专有名称或 DN。 有很多字段,但您可以将其中一些留空。 对于某些字段,有默认值。 如果您输入 .,则该字段留空。

    • 国家名称(两位字母代码)[AU]
    • 州或省份名称(全名)[Some-State]
    • 城市名称(例如,城市)[]
    • 组织名称(例如,公司)[Internet Widgits Pty Ltd]
    • 组织单位名称(例如,部门)[]
    • 通用名称(例如,服务器 FQDN 或您的姓名)[]
    • 电子邮件地址 []

    运行这些命令后,文件 private_key.pemroot.crt 将在当前目录中创建。

向 Harbor 提供证书

请参阅 运行安装脚本重新配置 Harbor 并管理 Harbor 生命周期 以安装或重新配置 Harbor。 运行 ./install./prepare 后,Harbor 会生成多个配置文件。 您需要将原始私钥和证书替换为您自己的密钥和证书。

  1. 替换默认密钥和证书。

    假设新密钥和证书位于 /root/cert 中,并且 /srv/harbor/data 被指定为 data_volume,请运行以下命令

    cd config/ui
    cp /root/cert/private_key.pem /srv/harbor/data/secret/core/private_key.pem
    cp /root/cert/root.crt /srv/harbor/data/secret/registry/root.crt
    
  2. 返回 make 目录,并使用以下命令启动 Harbor

    docker compose up -d
    
  3. 推送和拉取镜像到 Harbor 并从中拉取镜像,以检查您自己的证书是否有效。