要解决 “tls: failed to verify certificate: x509: certificate signed by unknown authority” 错误,您可以尝试以下步骤:
- 将 Harbor CA 根证书添加到 CentOS 7 的信任列表中:
将 Harbor CA 根证书复制到 /etc/pki/ca-trust/source/anchors/ 目录下,然后运行以下命令更新证书:
sudo cp /path/to/harbor/ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
- 配置 Docker 访问私有 Harbor 仓库时信任 TLS 证书:
在 /etc/docker/daemon.json 文件末尾添加以下内容:
{
"insecure-registries": ["<harbor-registry-url>"],
"tlsverify": true,
"tlscacert": "/etc/docker/certs.d/<harbor-registry-url>/ca.crt",
"tlscert": "/etc/docker/certs.d/<harbor-registry-url>/client.crt",
"tlskey": "/etc/docker/certs.d/<harbor-registry-url>/client.key"
}
其中,
- 重新启动 Docker 服务:
sudo systemctl restart docker.service
- 在 k3s 的 Helm values 文件中添加信任的 CA 证书:
如果您在安装 k3s 时使用了 Helm chart,请编辑 values.yaml 文件并添加以下内容:
extraEnv: |
- name: REGISTRY_HTTP_TLS_CA_CERTIFICATE
value: <base64 encoded harbor ca root cert>
其中,
- 重启 k3s 服务:
sudo systemctl restart k3s.service
执行完以上步骤后,您就可以在 k3s 中成功访问私有 Harbor 仓库了。