为 trivy 配置自定义证书颁发机构

在某些情况下,为 trivy 提供自定义证书颁发机构 (CA) 捆绑包可能很有用。如果您处于使用 Web 代理的企业环境中,通常是这种情况。由于 trivy 必须连接到互联网才能获取 CVE 数据,因此它必须通过代理。Trivy 从绑定挂载中读取证书,因此可以将证书放置在此文件夹中,如果创建新连接,trivy 将针对它们进行验证。

准备工作

  • 您有一个 CA 捆绑包,或您的 CA 的单个公钥证书,Web 代理使用它。

实施

  1. 进入您的 harbor 配置文件夹
  2. 查看 docker-compose.yml 和 trivy-adapter 的配置。它看起来像这样
  trivy-adapter:
    container_name: trivy-adapter
    image: goharbor/trivy-adapter-photon:dev
    restart: always
    cap_drop:
      - ALL
    dns_search: .
    depends_on:
      - log
      - redis
    networks:
      - harbor
    volumes:
      - type: bind
        source: /data/trivy-adapter/trivy
        target: /home/scanner/.cache/trivy
      - type: bind
        source: /data/trivy-adapter/reports
        target: /home/scanner/.cache/reports
      - type: bind
        source: ./common/config/shared/trust-certificates
        target: /harbor_cust_cert
  1. 注意绑定挂载到 /harbor_cust_cert,并将您的 ca-bundle 或单个公钥证书复制到挂载位置。
  2. (可选)如果主机路径不适合您的情况,您也可以在 docker-compose 文件中配置另一个路径。请注意,如果 trivy/harbor 的新版本发生更改,您可能需要手动更改此设置。
  3. 使用 docker restart trivy-adapterdocker compose restart 重新启动您的容器(至少是 trivy-adapter)。如果您更改了绑定路径,则必须使用 docker compose up -d 启动服务

升级

根据您是否更改了路径,更新可能会覆盖文件夹或从不同的位置挂载。以下过程确保您不会遇到任何意外情况

  1. 将您的证书备份到与 harbor-configuration 无关的文件夹中
  2. 像往常一样升级 harbor
  3. 检查 /harbor_cust_cert 挂载是否与您的证书所在的文件夹相同(通常是 ./common/config/shared/trust-certificates
  4. 检查文件夹是否仍然包含您的证书,否则将您备份的证书复制到该位置
  5. 检查 trivy 是否能够获取 CVE 数据