>백엔드 개발 >Golang >GitLab-CI Runner 자체 서명된 인증서 유효성 검사 오류를 해결하는 방법은 무엇입니까?

GitLab-CI Runner 자체 서명된 인증서 유효성 검사 오류를 해결하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-02 19:25:13495검색

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

Gitlab-CI Runner: 자체 서명된 인증서 확인 우회

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 서버의 관리자이지만 Runner 서버 관리를 담당하는 경우 다음 명령을 사용하여 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.2의 버그로 인해 이 방법은 사용자 정의 CA 서명 인증서에 작동하지 않을 수 있습니다. 문제가 발생하면 최신 버전의 gitlab-runner로 업그레이드하는 것이 좋습니다.

위 내용은 GitLab-CI Runner 자체 서명된 인증서 유효성 검사 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.