Spec-Zone.ru › Ansible 2.4

openssl_certificate - Генерация и/или проверка сертификатов OpenSSL

Новая в версии 2.4.

  • Обзор
  • Требования (для хоста, выполняющего модуль)
  • Параметры
  • Примеры
  • Возвращаемые значения
  • Примечания
    • Статус

Обзор

  • Этот модуль позволяет (пере)генерировать сертификаты OpenSSL. Он реализует понятие поставщика (например, selfsigned, acme, assertonly) для вашего сертификата. Поставщик ‘assertonly’ предназначен для случаев, когда требуется только проверка свойств предоставленного сертификата. Многие свойства, которые можно указать в этом модуле, предназначены для проверки существующего или недавно сгенерированного сертификата. Правильное место для их указания, если вы хотите получить сертификат с этими свойствами, — это CSR (запрос на подпись сертификата). Для взаимодействия с OpenSSL используется библиотека pyOpenSSL.

Требования (для хоста, выполняющего модуль)

  • python-pyOpenSSL >= 0.15 (если используется selfsigned или assertonly поставщик)
  • acme-tiny (если используется acme поставщик)

Параметры

параметр обязательно по умолчанию выбор комментарии
acme_accountkey
нет
Путь к файлу accountkey для acme поставщика
acme_challenge_path
нет
Путь к каталогу проверки ACME, который обслуживается по адресу http://<HOST>:80/.well-known/acme-challenge/
csr_path
нет
Путь к запросу на подпись сертификата (CSR), используемому для генерации этого сертификата. Это не требуется в режиме assertonly.
extended_key_usage
нет
Поле расширения extended_key_usage должно содержать все эти значения.
псевдонимы: extendedKeyUsage
extended_key_usage_strict
нет
  • да
  • нет
Если установлено в True, поле расширения extended_key_usage должно содержать только эти значения.
псевдонимы: extendedKeyUsage_strict
force
нет
  • да
  • нет
Сгенерировать сертификат, даже если он уже существует.
has_expired
нет
  • да
  • нет
Проверяет, истек ли сертификат/не истек ли он на момент выполнения модуля.
invalid_at
нет
Сертификат должен быть недействительным в этот момент времени. Дата и время отформатированы как ASN.1 TIME.
issuer
нет
Ключ/значение, которые должны присутствовать в поле имени издателя сертификата
key_usage
нет
Поле расширения key_usage должно содержать все эти значения.
псевдонимы: keyUsage
key_usage_strict
нет
  • да
  • нет
Если установлено в True, поле расширения key_usage должно содержать только эти значения.
псевдонимы: keyUsage_strict
not_after
нет
Сертификат должен истечь в этот момент времени. Дата и время отформатированы как ASN.1 TIME.
псевдонимы: notAfter
not_before
нет
Сертификат должен начать действовать в этот момент времени. Дата и время отформатированы как ASN.1 TIME.
псевдонимы: notBefore
path
да
Удаленный абсолютный путь, где должен быть создан или уже находится сгенерированный файл сертификата.
privatekey_passphrase
нет
Пароль к privatekey_path.
privatekey_path
нет
Путь к закрытому ключу, используемому при подписании сертификата.
provider
да
  • selfsigned
  • assertonly
  • acme
Имя поставщика для генерации/получения сертификата OpenSSL. Поставщик assertonly не будет генерировать файлы и завершится с ошибкой, если файл сертификата отсутствует.
selfsigned_digest
нет sha256
Алгоритм хэширования, используемый при самоподписи сертификата
selfsigned_not_after
нет
Дата и время, после которых сертификат перестаёт быть действительным. Дата и время отформатированы как ASN.1 TIME. Если это значение не указано, сертификат перестаёт быть действительным через 10 лет.
псевдонимы: selfsigned_notAfter
selfsigned_not_before
нет
Дата и время, с которых сертификат начинает действовать. Дата и время отформатированы как ASN.1 TIME. Если это значение не указано, сертификат начинает действовать с текущей даты и времени.
псевдонимы: selfsigned_notBefore
signature_algorithms
нет
Список алгоритмов, с которыми будет приниматься подписанный сертификат (например, ['sha256WithRSAEncryption', 'sha512WithRSAEncryption']).
state
нет present
  • present
  • absent
Существует ли сертификат или нет, выполняя действие, если состояние отличается от указанного.
subject
нет
Ключ/значение, которые должны присутствовать в поле имени субъекта сертификата
subject_alt_name
нет
Поле расширения subject_alt_name должно содержать эти значения.
псевдонимы: subjectAltName
subject_alt_name_strict
нет
  • да
  • нет
Если установлено в True, поле расширения subject_alt_name должно содержать только эти значения.
псевдонимы: subjectAltName_strict
valid_at
нет
Сертификат должен быть действительным в этот момент времени. Дата и время отформатированы как ASN.1 TIME.
valid_in
нет
Сертификат должен оставаться действительным через valid_in секунд от текущего момента.
version
нет
Версия сертификата. В наши дни она почти всегда должна быть 3.

Примеры

- name: Generate a Self Signed OpenSSL certificate
  openssl_certificate:
    path: /etc/ssl/crt/ansible.com.crt
    privatekey_path: /etc/ssl/private/ansible.com.pem
    csr_path: /etc/ssl/csr/ansible.com.csr
    provider: selfsigned

- name: Generate a Let's Encrypt Certificate
  openssl_certificate:
    path: /etc/ssl/crt/ansible.com.crt
    csr_path: /etc/ssl/csr/ansible.com.csr
    provider: acme
    acme_accountkey: /etc/ssl/private/ansible.com.pem
    acme_challenge_path: /etc/ssl/challenges/ansible.com/

- name: Force (re-)generate a new Let's Encrypt Certificate
  openssl_certificate:
    path: /etc/ssl/crt/ansible.com.crt
    csr_path: /etc/ssl/csr/ansible.com.csr
    provider: acme
    acme_accountkey: /etc/ssl/private/ansible.com.pem
    acme_challenge_path: /etc/ssl/challenges/ansible.com/
    force: True

# Examples for some checks one could use the assertonly provider for:
- name: Verify that an existing certificate was issued by the Let's Encrypt CA and is currently still valid
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    issuer:
      O: Let's Encrypt
    has_expired: False

- name: Ensure that a certificate uses a modern signature algorithm (no SHA1, MD5 or DSA)
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    signature_algorithms:
      - sha224WithRSAEncryption
      - sha256WithRSAEncryption
      - sha384WithRSAEncryption
      - sha512WithRSAEncryption
      - sha224WithECDSAEncryption
      - sha256WithECDSAEncryption
      - sha384WithECDSAEncryption
      - sha512WithECDSAEncryption

- name: Ensure that the existing certificate belongs to the specified private key
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    privatekey_path: /etc/ssl/private/example.com.pem
    provider: assertonly

- name: Ensure that the existing certificate is still valid at the winter solstice 2017
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    valid_at: 20171221162800Z

- name: Ensure that the existing certificate is still valid 2 weeks (1209600 seconds) from now
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    valid_in: 1209600

- name: Ensure that the existing certificate is only used for digital signatures and encrypting other keys
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    key_usage:
      - digitalSignature
      - keyEncipherment
    key_usage_strict: true

- name: Ensure that the existing certificate can be used for client authentication
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    extended_key_usage:
      - clientAuth

- name: Ensure that the existing certificate can only be used for client authentication and time stamping
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    extended_key_usage:
      - clientAuth
      - 1.3.6.1.5.5.7.3.8
    extended_key_usage_strict: true

- name: Ensure that the existing certificate has a certain domain in its subjectAltName
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    subject_alt_name:
      - www.example.com
      - test.example.com

Возвращаемые значения

Общие возвращаемые значения описаны здесь Возвращаемые значения, следующие поля уникальны для этого модуля:

имя описание возвращается тип пример
filename
Путь к сгенерированному сертификату
изменено или успех строка /etc/ssl/crt/www.ansible.com.crt

Примечания

Примечание

  • Все значения ASN.1 TIME должны быть указаны в формате ГГГГММДДЧЧММССZ. Указанная дата должна быть в формате UTC. Минуты и секунды обязательны.

Статус

Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимостью.

Для помощи в разработке модулей, если вы так пожелаете, прочитайте Информация о сообществе и вклад, Тестирование 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/openssl_certificate_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API