Maison >développement back-end >Golang >Comment résoudre les erreurs de validation du certificat auto-signé GitLab-CI Runner ?

Comment résoudre les erreurs de validation du certificat auto-signé GitLab-CI Runner ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 19:25:13484parcourir

How to Resolve GitLab-CI Runner Self-Signed Certificate Validation Errors?

Gitlab-CI Runner : contourner la vérification du certificat auto-signé

Lors de l'enregistrement d'un multi-runner Gitlab-CI, vous pouvez rencontrer des erreurs liées à la validation du certificat, tel que :

couldn't execute POST against https://xxxx/ci/api/v1/runners/register.json:
Post https://xxxx/ci/api/v1/runners/register.json:
x509: cannot validate certificate for xxxx because it doesn't contain any IP SANs

Ce problème survient lorsque le serveur Gitlab présente un auto-signé certificat qui ne contient pas de noms alternatifs de sujet IP (SAN). Pour contourner la validation du certificat, vous pouvez utiliser l'option --tls-ca-file lors de l'enregistrement du coureur.

gitlab-runner register --tls-ca-file=/path/to/certificate.crt [other options]

Où /path/to/certificate.crt est le chemin absolu vers le certificat auto-signé déposer. Alternativement, vous pouvez désactiver entièrement la vérification du certificat en définissant --tls-disable-verify sur true, mais cela n'est pas recommandé car cela peut compromettre la sécurité de votre runner.

gitlab-runner register --tls-disable-verify=true [other options]

Si vous n'êtes pas l'administrateur du serveur Gitlab mais sont responsables de la gestion du serveur runner, vous pouvez obtenir le certificat du serveur Gitlab en utilisant les commandes suivantes :

SERVER=gitlab.example.com
PORT=443
CERTIFICATE=/etc/gitlab-runner/certs/${SERVER}.crt

sudo mkdir -p $(dirname "$CERTIFICATE")

openssl s_client -connect ${SERVER}:${PORT} -showcerts </dev/null 2>/dev/null | sed -e '/-----BEGIN/,/-----END/!d' | sudo tee "$CERTIFICATE" >/dev/null

Une fois que vous avez obtenu le certificat, vous pouvez enregistrer le runner en utilisant l'option --tls-ca-file comme décrit précédemment.

Notez que cette méthode peut ne pas fonctionner pour les certificats personnalisés signés par une autorité de certification en raison d'un bug dans la version 1.11 de gitlab-runner. .2. Si vous rencontrez des problèmes, il est recommandé de passer à une version plus récente de gitlab-runner.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn