LINUX.ORG.RU

GitLab Runner: failed to verify certificate: x509

 ,


0

0

"Приветствую! Поднял локальный GitLab. Пытаюсь зарегистрировать runner на котором установлен GitLab.

При попытке ввести команды выводится следующая ошибка;"

gitlab-runner register --tls-ca-file="$CERTIFICATE"
Enter the GitLab instance URL (for example, https://gitlab.com/):
https://gitlab.example.com
Enter the registration token:
GR1348941ddPQUuJmdMm8n2qyBK7y
Enter a description for the runner:
[dott]: 
Enter tags for the runner (comma-separated):

Enter optional maintenance note for the runner:

WARNING: Support for registration tokens and runner parameters in the 'register' command has been deprecated in GitLab Runner 15.6 and will be replaced with support for authentication tokens. For more information, see https://docs.gitlab.com/ee/ci/runners/new_creation_workflow 
ERROR: Registering runner... failed                 runner=GR1348941ddPQUuJm status=couldn't execute POST against https://gitlab.example.com/api/v4/runners: Post "https://gitlab.example.com/api/v4/runners": tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead
PANIC: Failed to register the runner. 

«Далее попробовал ввести команды с токеном. теперь на токен не ругается. Но проблема также с сертификатом.»

root@dott:/home/dott# gitlab-runner register --tls-ca-file="$CERTIFICATE" --token glrt-fRrf4ACvaPp1RnxVBn3X
Runtime platform                                    arch=amd64 os=linux pid=2827 revision=4e724e03 version=16.4.0
Running in system-mode.                            
                                                   
Enter the GitLab instance URL (for example, https://gitlab.com/):
https://gitlab.example.com
ERROR: Verifying runner... failed                   runner=fRrf4ACva status=couldn't execute POST against https://gitlab.example.com/api/v4/runners/verify: Post "https://gitlab.example.com/api/v4/runners/verify": tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead
PANIC: Failed to verify the runner.                
root@dott:/home/dott# 

«На всяких форумах GitLab пытался вылечить путём пересоздания сертификата;»

cd certs
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -subj '/CN=gitlab.example.com' -days 365
cd /etc/gitlab/ssl
Удалил старые сертификаты
сp  /root/certs/cert.pem gitlab.example.com.crt
cp  /root/certs/key.pem gitlab.example.com.key
Переконфигурировал GitLab

«Дальше настраиваю переменные»

SERVER=gitlab.example.com
PORT=443
CERTIFICATE=/etc/gitlab-runner/certs/${SERVER}.crt
# Create the certificates hierarchy expected by gitlab
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"

«Всё безуспешно. Подскажите плиз у кого есть рабочий мануал? Или как это всё вылечить? Ставил всё на Ubuntu22.04.»

Ответ на: комментарий от dottram

Время идёт, требования к безопасности меняются. Требований 10-летней давности уже не достаточно

tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead

попробуй найти ответы на вопросы

  1. что такое SAN (Subject Alternate Name) в сертификате
  2. как можно просмотреть поля сертификата

Впрочем, если тебе лень, мне же лучше. Модный cfssl без лишних действий создаст актуальный сертификат

router ★★★★★
()
Ответ на: комментарий от dottram

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -subj '/CN=gitlab.example.com' -days 365

tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead

'/CN=gitlab.example.com'

Common Name

CN

Что же де-елать?

Будем копать.

t184256 ★★★★★
()
25 октября 2023 г.

РЕГИСТРАЦИЯ РАННЕРА ЭТОТ ВАРИАНТ РАБОТАЕТ, если gitlab в локальной среде необходимо явно указать путь к сертификату не будет ошибки x509 sudo gitlab-runner register
–non-interactive
–url «https://gitlab.local/»
–tls-ca-file=/etc/gitlab/ssl/gitlab.local.crt
–registration-token «GR1348946qKvZbSMR»
–executor «docker»
–docker-image alpine:latest
–description «docker-runner»
–maintenance-note «Free-form maintainer notes about this runner»
–tag-list «docker,aws»
–run-untagged=«true»
–locked=«false»
–access-level=«not_protected»

pil25
()