在Openshift3中,“Peer的证书颁发者已被标记为不受用户信任”

时间:2017-07-04 21:10:35

标签: git docker openshift tls1.2

如果S2I - Openshift3中的“Source-to-image”资源尝试连接到TLS Gitlab存储库,则显示以下消息:“Peer的证书颁发者已被标记为不被用户信任”。

我如何指示Openshift3哪些证书机构可以在那里使用?是否有任何配置/选项可以绕过此错误?

输入的命令是:

oc new-app tomcat~https://gitlab.xxx/test/test.git --name=test --strategy=docker

2 个答案:

答案 0 :(得分:5)

出于安全原因,您应该向BuildConfig添加trusted CA source secret 。要回答您的问题,您可以通过在BuildConfig中将环境变量GIT_SSL_NO_VERIFY设置为false来禁用TLS验证。查看docs here以获取更多信息。

将此直接传递给oc new-app命令运行oc new-app --build-env GIT_SSL_NO_VERIFY=false

答案 1 :(得分:0)

或者,我建议只导入根CA,以便TLS验证起作用。不会试图说出为什么这应该是必须的所有原因,但是在这里你是如何做到的:

1)获取根证书文件。

如果您正在运行内部Gitlab实例,那么无论是谁设置它都应该能够指向他们正在使用的根CA.

2)使用证书文件

创建新密码
#oc secrets new [secret name] ca.crt=[local .crt file]
oc secrets new tls-root-ca ca.crt=my-it-ca.crt

3)将新创建的秘密附加到构建配置

    #oc patch bc/[build config name] --patch '{ "spec": {"source": { "sourceSecret": { "name": "[secret name]" } } } }'
    oc patch bc/my-build --patch '{ "spec": {"source": { "sourceSecret": { "name": "tls-root-ca" } } } }'

如果你不熟悉patch命令,这只是添加一个" sourceSecret"阻止这样:

  source:
    git:
      uri: https://your.gitlab.org/your-app
    sourceSecret:
      name: tls-root-ca

另请参阅openshift guide on build input secrets