ホームページ > バックエンド開発 > Golang > GitLab-CI Runner の自己署名証明書検証エラーを解決するにはどうすればよいですか?

GitLab-CI Runner の自己署名証明書検証エラーを解決するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-02 19:25:13
オリジナル
480 人が閲覧しました

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

Gitlab-CI ランナー: 自己署名証明書検証のバイパス

Gitlab-CI マルチランナーを登録するときに、関連するエラーが発生する場合があります次のような証明書の検証に使用します。

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート