Jenkins and GitLab CI - Сертификат с истекшим сроком действия - PullRequest
0 голосов
/ 29 августа 2018

Существует множество постов и статей о том, как успешно связать Дженкинса и Гитлаба, чтобы получить хороший CI между ними. Ничто из этого не работает для меня, особенно потому, что все, что я пробую, всегда приводит к ошибкам сертификата на стороне Дженкинса. Вот 2 примера:

Не удалось подключиться к хранилищу ... stderr: fatal: невозможно получить доступ 'https://**.git/': Проблема с сертификатом SSL: срок действия сертификата истек

Ошибка клиента: сертификат не соответствует общему имени субъекта сертификата: MyCompany

Что подводит меня к этому вопросу. Я не уверен, является ли мой случай примером термина «Самоподписанный сертификат», но я знаю, что всякий раз, когда я открываю страницу моей компании GitLab, я вижу ошибку сертификата на этой странице. Когда я открываю сертификат. Информация, это показывает, что сертификат: Действителен до: Апрель 2017 года. Таким образом, очевидно, истек. Не уверен, почему мы не обновляем это, но я хотел бы знать, если факт, что мы используем GitLab с истекшим сертификатом. упустить ноль - мои шансы заставить Дженкинса поговорить с GitLab.

Я очень стараюсь заставить Дженкинса работать здесь - Но я трачу время, пытаясь, если это удостоверение. истек? У меня есть больше возможностей сделать эту работу?

Спасибо.

1 Ответ

0 голосов
/ 02 ноября 2018

Сегодня вечером я столкнулся с той же проблемой, и она сломала мои сборки в Jenkins из-за истекшего ssl-сертификата на моем сервере Gitlab. Ниже перечислены шаги, которые необходимо предпринять для исправления ошибки сборки Jenkins, когда Jenkins пытается извлечь из вашего репозитория Gitlab, когда истек срок действия сертификата Gitlabs ssl.

** Все приведенные ниже команды выполняются в Ubuntu 16.04

1) Создайте CSR или SAN CSR для вашего сервера Gitlab

  • Это даст файлы .csr и .key

  • Не делиться и не публиковать файл ".key" (ЕГО ЧАСТНЫЙ КЛЮЧ)

  • Используйте эти файлы для шага 2

2) Сгенерируйте сертификат SSL для сервера Gitlab (это даст файл .crt)

3) Поместите файл .crt и .key в / etc / gitlab / ssl / (Ubuntu 16.04)

  • Я использовал свой каталог сервера, но ваш может отличаться в зависимости от платформы

sudo openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.csr" -signkey "/etc/gitlab/ssl/gitlab.key" -out "/ etc / gitlab / ssl / gitlab .crt "

4) Отредактируйте файл /etc/gitlab/gitlab.rb, чтобы отразить ваше новое общее имя

  • То есть если ты это изменил

external_url 'https://' #ip адрес или имя DNS

5) Переконфигурируйте Gitlab (пропустите этот шаг, если вы не изменили свое общее имя

sudo gitlab-re перенастроить

6) Перезапустите сервер gitlab, чтобы изменения вступили в силу

  • Это приведет к выходу из строя, поэтому, если вы работаете, убедитесь, что у вас есть окно технического обслуживания

перезапуск sudo systemctl gitlab-runvdir.service

7) Убедитесь, что сервер снова подключен

sudo systemctl status gitlab-runvdir.service

8) Теперь на вашем сервере Jenkins вам необходимо обновить /etc/ssl/certs/ca-certificates.crt новым сертификатом сервера Gitlab

** Опять же, я запускаю это в Ubuntu 16.04 (это может отличаться в зависимости от платформы)

** Измените в приведенной ниже команде общее имя вашего сервера gitlab

sudo su - 
echo -n | openssl s_client -showcerts -connect <common_name_goes_here>:443   2>/dev/null  | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> /etc/ssl/certs/ca-certificates.crt

9) Попробуйте запустить сборку в Jenkins

  • Надеюсь, это работает.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...