acme_sh

Текущая метка

acme_sh

Настройте acme.sh в режиме dns api с помощью ansible для генерации сертификатов letsencrypt.org.

Зависимости

Многое из настроек по умолчанию предполагает использование nginx.

Переменные

Вот некоторые параметры по умолчанию, которые контролируют поведение:

acme_sh_autoupgrade: True
acme_sh_server: letsencrypt
acme_sh_notify: False
acme_sh_logging: False
acme_sh_keylength: 4096
acme_sh_dns_sleep: 120

acme_sh_certs_public_dir: /etc/nginx/certs
acme_sh_certs_private_dir: /etc/nginx/private
acme_sh_reload_cmd: /bin/systemctl reload nginx

Пример плейбука

Вот пример использования AWS Route53 API. Но вы можете изменить его для любого провайдера dns api.

Использование:

- hosts: servers
  roles:
    - role: thermistor.acme_sh
      acme_sh_subject_names:
        - example.com
        - www.example.com
      acme_sh_dns_provider: dns_aws
      acme_sh_env:
        AWS_ACCESS_KEY_ID: "{{ ваш_доступ_ключ_aws }}"
        AWS_SECRET_ACCESS_KEY: "{{ ваш_секретный_ключ_aws }}"

Вот тот же пример, но с добавленным логированием:

- hosts: servers
  roles:
    - role: thermistor.acme_sh
      acme_sh_logging: True
      acme_sh_subject_names:
        - example.com
        - www.example.com
      acme_sh_dns_provider: dns_aws
      acme_sh_env:
        AWS_ACCESS_KEY_ID: "{{ ваш_доступ_ключ_aws }}"
        AWS_SECRET_ACCESS_KEY: "{{ ваш_секретный_ключ_aws }}"

А вот с уведомлениями от mailgun:

- hosts: servers
  roles:
    - role: thermistor.acme_sh
      acme_sh_notify: True
      acme_sh_notify_hooks:
        - mailgun
      acme_sh_subject_names:
        - example.com
        - www.example.com
      acme_sh_dns_provider: dns_aws
      acme_sh_env:
        AWS_ACCESS_KEY_ID: "{{ ваш_доступ_ключ_aws }}"
        AWS_SECRET_ACCESS_KEY: "{{ ваш_секретный_ключ_aws }}"
        MAILGUN_API_KEY: "{{ ваш_mailgun_api_ключ }}"
        MAILGUN_API_DOMAIN: "{{ ваш_mailgun_домен }}"
        MAILGUN_FROM: "{{ ваш_mailgun_от }}"
        MAILGUN_TO: "{{ ваш_mailgun_для }}"

Что происходит за кулисами

Если вы генерируете сертификат для example.com, на этапе установки эта роль скопирует файл /var/lib/acme/.acme.sh/example.com/fullchain.cer и установит его как /etc/nginx/certs/example.com.cer. Обратите внимание, что устанавливается сертификат fullchain и переименовывается, это нужно для того, чтобы вы могли установить несколько сертификатов fullchain для разных доменов, если это необходимо.

Устранение неисправностей

Если возникают проблемы с неправильной конфигурацией сертификатов, иногда вы можете столкнуться с состоянием, когда сертификаты не переустанавливаются. Вы можете принудительно переустановить сертификаты с помощью:

ansible-playbook -i inventory playbook.yml -e "acme_sh_force_install=True" --tags acme_sh_cert_install

Лицензия

MIT

Альтернативы

Мы заимствовали много идей из этих альтернатив:

О проекте

Configure acme.sh

Установить
ansible-galaxy install thermistor/acme_sh
Лицензия
Unknown
Загрузки
156
Владелец
Product guy