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
Libérer: 2024-12-02 19:25:13
original
587 Les gens l'ont consulté

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
Copier après la connexion

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]
Copier après la connexion

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]
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal