10

如果 S2I - Openshift3 中的“Source-to-image”资源尝试连接到 TLS Gitlab 存储库,则会显示以下消息:“Peer's certificate issuer has been marking as not trust by the user”。

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

输入的命令是:

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

2 回答 2

12

出于安全原因,您应该将受信任的 CA 源密钥添加到 BuildConfig。要回答您的问题,您可以通过在 BuildConfig 中设置环境变量GIT_SSL_NO_VERIFY来禁用 TLS 验证。false此处查看文档以获取更多信息。

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

于 2017-07-05T12:01:49.347 回答
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 指南

于 2018-05-22T14:48:39.593 回答