Si S2I - ressource "Source à image" dans Openshift3 tente de se connecter à un référentiel TLS Gitlab, le message suivant s'affiche: "L'émetteur du certificat de Peer a été marqué comme non approuvé par l'utilisateur".
Comment puis-je indiquer à Openshift3 quels certificats les autorités peuvent utiliser là-bas? Existe-t-il une option/configuration permettant de contourner cette erreur?
La commande entrée était:
oc new-app Tomcat~https://gitlab.xxx/test/test.git --name=test --strategy=docker
Pour des raisons de sécurité, vous devez ajouter un secret de source d’autorité de confiance à BuildConfig. Pour répondre à votre question, vous pouvez désactiver la vérification TLS en définissant une variable d'environnement GIT_SSL_NO_VERIFY
sur false
dans BuildConfig. Vérifie les docs ici pour plus d’informations.
Pour transmettre ceci directement à la commande oc new-app
, exécutez oc new-app --build-env GIT_SSL_NO_VERIFY=false
Autrement, je suggérerais simplement d'importer l'autorité de certification racine pour que la validation TLS fonctionne. Nous n'essaierons pas de parler de toutes les raisons pour lesquelles cela devrait être un must, mais voici comment procéder:
Si vous exécutez une instance interne de Gitlab, quiconque l’a configurée devrait pouvoir vous diriger vers l’autorité de certification racine qu’elle utilise.
#oc secrets new [secret name] ca.crt=[local .crt file]
oc secrets new tls-root-ca ca.crt=my-it-ca.crt
#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" } } } }'
Au cas où vous ne maîtriseriez pas la commande patch, ajoutez simplement un bloc "sourceSecret" comme ceci:
source:
git:
uri: https://your.gitlab.org/your-app
sourceSecret:
name: tls-root-ca
Voir aussi le guide openshift sur les secrets d’entrée de construction