letsencrypt - Создание сертификатов SSL с помощью Let’s Encrypt
Новое в версии 2.2.
Описание
- Создание и обновление сертификатов SSL с помощью Let’s Encrypt. Let’s Encrypt — это бесплатный, автоматизированный и открытый центр сертификации (ЦС), работающий в интересах общественности. Подробнее см. https://letsencrypt.org. Текущая реализация поддерживает вызовы http-01, tls-sni-02 и dns-01.
- Для использования данного модуля его необходимо выполнить как минимум дважды. Либо как две отдельные задачи в одном запуске, либо в нескольких запусках.
- Между этими двумя задачами необходимо выполнить необходимые шаги для выбранного вызова любыми доступными средствами. Для http-01 это означает создание необходимого файла вызова на целевом веб-сервере. Для dns-01 необходимо создать необходимый DNS-запись. tls-sni-02 требует создания сертификата SSL с соответствующими Subject Alternative Names. Данный модуль *не* отвечает за выполнение этих шагов.
- Для получения подробной информации о выполнении этих вызовов, возможно, потребуется изучить https://tools.ietf.org/html/draft-ietf-acme-acme-02#section-7
- Хотя значения по умолчанию выбраны таким образом, чтобы модуль можно было использовать с центром сертификации Let’s Encrypt, модуль может быть использован с любым сервисом, использующим протокол ACME.
Требования (к хосту, на котором выполняется модуль)
- python >= 2.6
- openssl
Параметры
| параметр | обязательный | значение по умолчанию | выбор | комментарии |
|---|---|---|---|---|
| account_email | нет | Адрес электронной почты, связанный с этой учетной записью. Он будет использоваться для предупреждений о истечении срока действия сертификата. | ||
| account_key | да | Файл, содержащий открытый ключ учетной записи Let's Encrypt. Можно создать с помощью openssl rsa .... | ||
| acme_directory | нет | https://acme-staging.api.letsencrypt.org/directory | Используемый каталог ACME. Это URL-адрес точки входа для доступа к API сервера ЦС. По соображениям безопасности значение по умолчанию установлено на тестовом сервере Let's Encrypt. Это создаст технически правильные, но недоверенные сертификаты. | |
| agreement | нет | https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf | URI документа о пользовательском соглашении, с которым вы соглашаетесь при использовании службы ACME по адресу acme_directory. | |
| challenge | нет | http-01 |
| Вызов, который необходимо выполнить. |
| csr | да | Файл, содержащий CSR для нового сертификата. Можно создать с помощью openssl csr ....CSR может содержать несколько имен альтернативных субъектов, но каждое из них приведет к отдельному вызову, который необходимо выполнить, чтобы CSR был подписан. псевдонимы: src | ||
| data | нет | Данные для проверки текущих вызовов. Значение, которое необходимо использовать здесь, будет предоставлено предыдущим использованием этого модуля. | ||
| dest | да | Целевой файл для сертификата. псевдонимы: cert | ||
| remaining_days | нет | 10 | Количество дней, оставшихся до истечения срока действия сертификата. Если cert_days < remaining_days, он будет продлен. Если сертификат не продлен, значения возврата модуля не будут включать challenge_data. |
Примеры
- letsencrypt:
account_key: /etc/pki/cert/private/account.key
csr: /etc/pki/cert/csr/sample.com.csr
dest: /etc/httpd/ssl/sample.com.crt
register: sample_com_challenge
# perform the necessary steps to fulfill the challenge
# for example:
#
# - copy:
# dest: /var/www/html/{{ sample_com_challenge['challenge_data']['sample.com']['http-01']['resource'] }}
# content: "{{ sample_com_challenge['challenge_data']['sample.com']['http-01']['resource_value'] }}"
# when: sample_com_challenge|changed
- letsencrypt:
account_key: /etc/pki/cert/private/account.key
csr: /etc/pki/cert/csr/sample.com.csr
dest: /etc/httpd/ssl/sample.com.crt
data: "{{ sample_com_challenge }}"
Значения возврата
Общие значения возврата документированы здесь Значения возврата, следующие — поля, уникальные для этого модуля:
| имя | описание | возвращаемое | тип | пример | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| authorizations | Данные авторизации ACME. | изменилось | сложное | ||||||||||||||||
| содержит: |
| ||||||||||||||||||
| cert_days | Количество дней, оставшихся до истечения срока действия сертификата. | успех | int | ||||||||||||||||
| challenge_data | данные вызова по домену/типу вызова | изменилось | сложное | ||||||||||||||||
| содержит: |
| ||||||||||||||||||
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Для получения помощи в разработке модулей, если вы захотите, пожалуйста, прочитайте Информация сообщества и участие, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/letsencrypt_module.html