Nincs leírás

tomishinets.v ed9a9b722e missprint 5 éve
Dockerfile 674e97aa46 missprint 5 éve
Jenkinsfile 10c4f428d8 missprint 5 éve
Jenkinsfile.generate c24ebc17dd missprint 5 éve
Jenkinsfile.renewal ed9a9b722e missprint 5 éve
README.md a36a3fb7b5 missprint 5 éve
default.conf 790f57823b Поправил defalut 6 éve
err_trap 3a05c8d5e2 Перевод renewal в jenkins. See Redmine 110155 5 éve
generate.sh 5a83d63e7f change branch 5 éve
healthcheck.sh f696bd7112 поправил healthcheck.sh 5 éve
nginx.repo d881d99c39 Add dockerfile 6 éve
renewal.sh 6335312e7a debug 5 éve

README.md

letsencrypt

Основные положения

  • Образ основан на centos:7.5.1804
  • В образе используются скрипты generate.sh и renewal.sh для генерации и обновления сертификатов и ключей
  • Задание в Jenkins iru-generate-ssl-certs

Описание работы

  • Редирект запросов на подтверждение владения доменом обеспечивается настройкой haproxy:

    acl letsencrypt_acl path_beg /.well-known/acme-challenge/
    ...
    use_backend letsencrypt_beg if letsencrypt_acl
    ...
    backend letsencrypt_beg
    mode http
    server      letsencrypt letsencrypt:80 check
    
  • Директория с конфигурационными файлами, сертификатами и ключами скачивается с git и опеределяется в переменной git_dir в исполняемых скриптах

  • Для запуска сервиса используются переменные и secrets:

    SMTP_SERVER - адрес почтового сервера
    JENKINS_MAIL_USER - имя пользователя, от которого отправляются email
    jenkins-mail-pass - пароль пользователя, от которого отправляются email
    RECIPIENT_MAIL_BOX - имя пользователя, которому приходят email
    GIT_USER - имя пользователя, имеющего доступ до git-repo
    provision-pass - пароль пользователя, имеющего доступ до git-repo
    GIT_URL - адрес git-repo
    

Выпуск сертификатов и ключей с помощью Jenkinsfile.generate

  • В параметре domain должны быть указано доменное имя (множественные имена не поддерживаются, так как сильно усложняет логику):

    example.ru
    
  • Рекомендуется за один запуск задания выпускать сертификаты, принадлежащие одной "организации"

  • Как только выполнится задание на выпуск сертификата стригерится githook и будет запущено задание на обновление образа nginx-gost

Обновление сертификатов и ключей

  • Обновление сертификатов и ключей осуществляется с помощью healthcheck. При старте контейнера создается файл, если время создания файла более 24 часов, то healthcheck запускает обновление сертификатов
  • После обновления сертификатов стригерится githook и будет запущено задание на обновление образа nginx-gost

Запуск сервиса

  • Запуск сервиса интегрирован в stackfile по деплою proxy-инфраструктуры.

Автор

В. Томишинец ... tomishinets.v@sdsys.ru