Ingen beskrivning

OBT-SYSADM\tomishinets f995fe1ee2 Обновил readme 5 år sedan
Dockerfile 179ad69e0f Поправил healthcheck, закомментировал пока dry_run, Написал Jenkinsfile 6 år sedan
Jenkinsfile 10c4f428d8 missprint 5 år sedan
Jenkinsfile.generate c24ebc17dd missprint 5 år sedan
README.md f995fe1ee2 Обновил readme 5 år sedan
default.conf 790f57823b Поправил defalut 6 år sedan
generate.sh 5a83d63e7f change branch 5 år sedan
healthcheck.sh 6d596df21f missprint 6 år sedan
nginx.repo d881d99c39 Add dockerfile 6 år sedan
renewal.sh ba17c40c7b change branch 5 år sedan

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

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

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

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

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

Автор

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