根据Wassim的答案和gitlab documentation about tls-self-signed and custom CA-signed certificates,如果您不是GitLab服务器的管理员,而只是拥有Runner的服务器的管理员(如果Runner是以root身份运行的),那么这里就是为了节省一些时间:
SERVER=gitlab.example.com
PORT=443
CERTIFICATE=/etc/gitlab-runner/certs/${SERVER}.crt
# Create the certificates hierarchy expected by gitlab
sudo mkdir -p $(dirname "$CERTIFICATE")
# Get the certificate in PEM format and store it
openssl s_client -connect ${SERVER}:${PORT} -showcerts </dev/null 2>/dev/null | sed -e '/-----BEGIN/,/-----END/!d' | sudo tee "$CERTIFICATE" >/dev/null
# Register your runner
gitlab-runner register --tls-ca-file="$CERTIFICATE" [your other options]
Update 1: CERTIFICATE
必须是证书文件的绝对路径.
Update 2:如果自定义CA因gitlab-runner bug #2675而签名,则可能仍会失败