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中文網其他相關文章!