web-dev-qa-db-ja.com

Openshift3の「ピアの証明書発行者はユーザーによって信頼されていないとしてマークされています」

S2I-Openshift3の「Source-to-image」リソースがTLS Gitlabリポジトリに接続しようとすると、次のメッセージが表示されます。

どの認証局がそこで使用できるかをOpenshift3に指示するにはどうすればよいですか?このエラーをバイパスするための設定/オプションはありますか?

入力されたコマンドは次のとおりです。

oc new-app Tomcat~https://gitlab.xxx/test/test.git --name=test --strategy=docker
7
Carlos Alberto

セキュリティ上の理由から、BuildConfigに 信頼できるCAソースシークレット を追加する必要があります。質問に答えるために、BuildConfigで環境変数GIT_SSL_NO_VERIFYfalseに設定して、TLS検証を無効にすることができます。詳細については、 docs here を確認してください。

これをoc new-appコマンドに直接渡すには、oc new-app --build-env GIT_SSL_NO_VERIFY=falseを実行します

7
PhilipGough

または、TLS検証が機能するようにルートCAをインポートすることをお勧めします。これがmustである必要があるすべての理由について話そうとはしませんが、次のようにします。

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

入力シークレットの構築に関するオープンシフトガイド も参照してください。

0
josh-cain