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