simp_le

ansible-role-simp_le

Установите simp_le, сгенерируйте сертификаты и автоматически обновляйте их на серверах Debian/Ubuntu.

Попытки обновления будут производиться ежедневно с помощью cron-задачи, запущенной удаленным пользователем Ansible.

Смотрите роль на Ansible Galaxy: L-P.simp_le

Примечание: Я начал использовать acmetool и рекомендую вам сделать то же самое для любых новых серверов с Ubuntu ≥ 16.04.

Обязательные переменные

Список виртуальных хостов, для которых мы будем генерировать сертификаты:

simp_le_vhosts:
  - domains: ["www.example.com", "example.com"]
    root: "/path/to/challenges" # доступно через HTTP
    output: "/path/to/output/dir" # куда записывать сертификаты

Адрес электронной почты, который LetsEncrypt будет использовать для вашей идентификации и отправки уведомлений об обновлении:

simp_le_email: "[email protected]"

Есть три необязательных ключа, которые можно установить для хостов:

  • user и group, чтобы указать, кто будет владельцем ключей, задач и их родительских директорий. Владелец по умолчанию - www-data:www-data.
  • extra_args, чтобы передать дополнительные аргументы симп_ле, это можно использовать для работы с тестовым сервером LetsEncrypt или указать симп_ле повторно использовать пару ключей при обновлении сертификата. Это полезно, если вы используете записи TLSA, тогда вы можете использовать тип селектора 1 (SubjectPublicKeyInfo), и ваша запись TLSA не нуждается в изменении при обновлении сертификата.
  • update_action - команда, которая будет выполнена при обновлении сертификата, например, systemctl restart apache2.

Пример:

simp_le_vhosts:
  - domains: ["smtp.example.com", "mail.example.com"]
    root: "/path/to/challenges"
    output: "/path/to/output/dir"
    user: "Debian-exim"
    group: "Debian-exim"
    extra_args: "--reuse_key --server https://acme-staging.api.letsencrypt.org/directory"
    update_action: "/bin/systemctl restart exim4"

Смотрите defaults/main.yml для дополнительной конфигурации.

Конфигурация сервера

Ваш сервер должен обслуживать файлы задач по HTTP, вот пример конфигурации для nginx, которая будет перенаправлять все HTTP-запросы на HTTPS, кроме задач:

location /.well-known/acme-challenge/ {
    alias /var/www/challenges/.well-known/acme-challenge/;
    try_files $uri @forward_https;
}
location @forward_https {
    return 301 https://example.com$request_uri;
}
location / {
    return 301 https://example.com$request_uri;
}

Пример playbook

- hosts: all
  roles:
    - {role: "L-P.simp_le", become: no}

Хотя большая часть операций выполняется без sudo, он все равно используется для создания различных директорий с правильными правами и владельцами.

О проекте

simp_le installation and certificate generation for Ubuntu/Debian.

Установить
ansible-galaxy install L-P/ansible-role-simp_le
Лицензия
mit
Загрузки
130
Владелец