我已经将我自己托管的Gitlab与Hashicorp vault集成在一起。我已经按照这里的步骤运行了https://docs.gitlab.com/ee/ci/examples/authenticating-with-hashicorp-vault/,并尝试运行管道。
我在运行管道时收到证书错误。
Error writing data to auth/jwt/login: Put "https://vault.systems:8200/v1/auth/jwt/login": x509: certificate signed by unknown authority我的.gitlab yml文件-
Vault Client:
image:
name: vault:latest
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
before_script:
script:
- export VAULT_ADDR=https:/vault.systems:8200/
- export VAULT_TOKEN="$(vault write -field=token auth/jwt/login role=staging jwt=$CI_JOB_JWT)"
- export PASSWORD="$(vault kv get -field=password kv/project/staging/db)"
- echo $PASSWORD如果我使用-tls-skip-verify标志,那么它工作得很好。
我是否需要将自签名服务器证书放置在vault服务器或gitlab服务器上的某个位置?如果有人对这个问题有什么想法,请告诉我。
发布于 2020-11-07 08:25:31
由docker/kube执行器管理的容器必须配置为信任自签名证书。您可以编辑运行器的config.toml,以便将其挂载到GitLab CI作业容器的受信任证书/CA根中
例如,在基于Linux的docker执行器上:
[[runners]]
name = "docker"
url = "https://example.com/"
token = "TOKEN"
executor = "docker"
[runners.docker]
image = "ubuntu:latest"
# Add path to your ca.crt file in the volumes list
volumes = ["/cache", "/path/to-ca-cert-dir/ca.crt:/etc/gitlab-runner/certs/ca.crt:ro"]有关更多信息,请参阅docs。
发布于 2020-11-07 07:01:49
Error writing data to auth/jwt/login: Put "https://vault.systems:8200/v1/auth/jwt/login": x509: certificate signed by unknown authority您收到的错误是从Vault返回的,因此您需要获得Vault才能接受该证书。关于如何在the Deployment Guide中这样做,有一个很好的说明。(我曾经在HashiCorp保险库工作,所以我知道从哪里挖出来。)
发布于 2020-11-09 19:52:29
我可以通过在我的gitlab.yml文件中使用这个变量VAULT_CACERT来解决这个问题:- export VAULT_CACERT=/etc/gitlab-runner/certs/ca.crt。这里的证书路径是我们在容器启动时指定的挂载容器的路径。
张贴这篇文章,如果有人在寻找它,这就是解决方案。:)
https://stackoverflow.com/questions/64716870
复制相似问题