Heim >Backend-Entwicklung >Golang >Wie behebt man Fehler bei der Validierung selbstsignierter Zertifikate von GitLab-CI Runner?

Wie behebt man Fehler bei der Validierung selbstsignierter Zertifikate von GitLab-CI Runner?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-02 19:25:13495Durchsuche

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

Gitlab-CI-Runner: Umgehen der selbstsignierten Zertifikatsüberprüfung

Bei der Registrierung eines Gitlab-CI-Multi-Runners können Fehler auftreten zur Zertifikatsvalidierung, wie zum Beispiel:

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

Dieses Problem tritt auf, wenn der Gitlab-Server ein selbstsigniertes Zertifikat vorlegt Zertifikat ohne IP Subject Alternative Names (SANs). Um die Zertifikatsvalidierung zu umgehen, können Sie bei der Registrierung des Runners die Option --tls-ca-file verwenden.

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

Wobei /path/to/certificate.crt der absolute Pfad zum selbstsignierten Zertifikat ist Datei. Alternativ können Sie die Zertifikatsüberprüfung vollständig deaktivieren, indem Sie --tls-disable-verify auf „true“ setzen. Dies wird jedoch nicht empfohlen, da dies die Sicherheit Ihres Runners gefährden kann.

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

Wenn Sie nicht der Administrator sind des Gitlab-Servers, aber für die Verwaltung des Runner-Servers verantwortlich sind, können Sie das Zertifikat mit den folgenden Befehlen vom Gitlab-Server abrufen:

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

Sobald Sie das erhalten haben Zertifikat können Sie den Runner wie zuvor beschrieben mit der Option --tls-ca-file registrieren.

Beachten Sie, dass diese Methode aufgrund eines Fehlers in Gitlab-Runner Version 1.11 möglicherweise nicht für benutzerdefinierte CA-signierte Zertifikate funktioniert .2. Wenn Probleme auftreten, wird empfohlen, auf eine neuere Version von gitlab-runner zu aktualisieren.

Das obige ist der detaillierte Inhalt vonWie behebt man Fehler bei der Validierung selbstsignierter Zertifikate von GitLab-CI Runner?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn