首頁 >後端開發 >Golang >如何解決 GitLab-CI Runner 自簽名憑證驗證錯誤?

如何解決 GitLab-CI Runner 自簽名憑證驗證錯誤?

Patricia Arquette
Patricia Arquette原創
2024-12-02 19:25:13484瀏覽

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

Gitlab-CI Runner:繞過自簽名憑證驗證

註冊Gitlab-CI multi-runner 時,您可能會遇到相關錯誤進行證書驗證,如:

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

Gitlab時會出現此問題伺服器提供缺少 IP 使用者備用名稱 (SAN) 的自簽章憑證。若要繞過憑證驗證,您可以在註冊執行器時使用 --tls-ca-file 選項。

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

其中 /path/to/certificate.crt 是自簽章憑證的絕對路徑檔。或者,您可以透過將 --tls-disable-verify 設為 true 來完全停用憑證驗證,但不建議這樣做,因為它可能會損害執行器的安全性。

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

如果您不是管理員Gitlab 伺服器的權限,但負責管理運行器伺服器,您可以使用以下命令從Gitlab 伺服器取得憑證:

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

一旦獲得證書,您可以使用--tls-ca-file 選項註冊運行程序,如前所述。

請注意,由於 gitlab-runner 版本 1.11 中的錯誤,此方法可能不適用於自訂 CA 簽章憑證.2.如果遇到問題,建議升級到較新版本的 gitlab-runner。

以上是如何解決 GitLab-CI Runner 自簽名憑證驗證錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn