# 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