Spec-Zone.ru › Ansible

Модуль community.crypto.x509_crl — создание списков отзыва сертификатов (CRL)

Примечание

Этот модуль входит в коллекцию community.crypto (версия 3.2.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля нужны дополнительные требования; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.crypto.x509_crl.

Добавлен в community.crypto 1.0.0

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Этот модуль позволяет создавать заново или обновлять списки отзыва сертификатов (CRL).
  • Сертификаты в списке отзыва можно указать по серийному номеру и (при необходимости) издателю либо указать путь к файлу сертификата в формате PEM.

Требования

Перечисленные ниже требования должны быть выполнены на узле, на котором запускается этот модуль.

  • Если для name_encoding задано значение, отличное от ignore, необходимо установить библиотеку Python idna.
  • cryptography >= 3.3

Параметры

Параметр

Комментарии

attributes

псевдонимы: attr

string

Атрибуты, которые должны быть у результирующего объекта файловой системы.

Список поддерживаемых флагов см. на странице руководства для chattr в целевой системе.

Эта строка должна содержать атрибуты в том же порядке, в котором они отображаются командой lsattr.

По умолчанию предполагается оператор =, в противном случае в строку необходимо включить операторы + или -.

backup

boolean

Создать файл резервной копии с отметкой времени, чтобы можно было восстановить исходный список отозванных сертификатов (CRL), если вы случайно перезаписали его новым.

Варианты:

  • false ← (по умолчанию)
  • true

crl_mode

string

добавлено в community.crypto 2.13.0

Определяет способ обработки записей существующих списков CRL.

Если задано значение generate, гарантирует, что список CRL содержит в точности набор отозванных сертификатов, указанный в revoked_certificates.

Если задано значение update, гарантирует, что список CRL содержит отозванные сертификаты из revoked_certificates, но может содержать и другие отозванные сертификаты. Если файл CRL уже существует, все записи из имеющегося списка также будут включены в новый список CRL. При использовании update может быть полезно установить для ignore_timestamps значение true.

Значение по умолчанию — generate.

До версии community.crypto 2.13.0 этот параметр назывался mode. Его переименовали, чтобы избежать конфликта с распространённым параметром mode, задающим режим доступа к файлу CRL.

Варианты:

  • "generate" ← (по умолчанию)
  • "update"

digest

string

Алгоритм хеширования, используемый при подписании списка CRL.

По умолчанию: "sha256"

force

boolean

Нужно ли принудительно перегенерировать список CRL.

Варианты:

  • false ← (по умолчанию)
  • true

format

string

Формат файла CRL: PEM или DER.

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

Варианты:

  • "pem" ← (по умолчанию)
  • "der"

group

string

Имя группы, которой должен принадлежать объект файловой системы; оно передаётся команде chown.

Если значение не указано, используется текущая группа текущего пользователя. Если пользователь — root, можно сохранить прежнего владельца.

ignore_timestamps

boolean

Следует ли игнорировать отметки времени last_update, next_update и revoked_certificates[].revocation_date при проверке идемпотентности. Отметка времени revoked_certificates[].invalidity_date никогда не игнорируется.

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

Варианты:

  • false ← (по умолчанию)
  • true

issuer

dictionary

Пары «ключ/значение», которые будут указаны в поле имени издателя списка CRL.

Если необходимо указать несколько значений с одинаковым ключом, используйте список в качестве значения.

Если порядок компонентов имеет значение, используйте issuer_ordered.

Если state равно present, необходимо указать один из параметров: issuer или issuer_ordered.

Несовместим с issuer_ordered.

issuer_ordered

list / элементы=dictionary

добавлено в community.crypto 2.0.0

Список словарей, каждый из которых должен содержать одну пару «ключ/значение». Эта пара будет указана в поле имени издателя списка CRL.

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

Если state равно present, необходимо указать один из параметров: issuer или issuer_ordered.

Несовместим с issuer.

last_update

string

Момент времени, начиная с которого этому списку CRL можно доверять.

Время можно указать как относительное значение или абсолютную отметку времени.

Время всегда интерпретируется как UTC.

Допустимый формат: [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).

Обратите внимание: при использовании относительного времени модуль НЕ является идемпотентным, кроме случая, когда для ignore_timestamps задано значение true.

По умолчанию: "+0s"

mode

any

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

Если вы привыкли к /usr/bin/chmod, помните, что режимы на самом деле представляют собой восьмеричные числа. Необходимо предоставить Ansible достаточно данных, чтобы он мог корректно их обработать. Для предсказуемого результата заключайте восьмеричные числа в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и самостоятельно преобразовал её в число. Иногда помогает добавление ведущего нуля (например, 0755), но в циклах и некоторых других ситуациях этот способ может не сработать.

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

Начиная с Ansible 1.8, режим можно указывать в символьном виде (например, u+rwx или u=rw,g=r,o=r).

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

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

Указание mode — лучший способ обеспечить создание объектов файловой системы с правильными правами доступа. Подробнее см. CVE-2020-1736.

name_encoding

string

Способ кодирования имён (имён DNS, URI, адресов электронной почты) в возвращаемых значениях.

ignore использует кодировку, возвращаемую серверной частью.

idna преобразует все метки доменных имён в кодировку IDNA. Приоритет отдаётся IDNA2008; если кодирование IDNA2008 завершается с ошибкой, используется IDNA2003.

unicode преобразует все метки доменных имён в Unicode. Приоритет отдаётся IDNA2008; если декодирование IDNA2008 завершается с ошибкой, используется IDNA2003.

Примечание. Для idna и unicode требуется установленная библиотека Python idna.

Варианты:

  • "ignore" ← (по умолчанию)
  • "idna"
  • "unicode"

next_update

string

Самый поздний абсолютный момент времени, к которому issuer предположительно должен выпустить новый список CRL. Многие клиенты считают CRL просроченным после наступления next_update.

Время можно указать как относительное значение или абсолютную отметку времени.

Время всегда интерпретируется как UTC.

Допустимый формат: [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).

Обратите внимание: при использовании относительного времени модуль НЕ является идемпотентным, кроме случая, когда для ignore_timestamps задано значение true.

Обязателен, если state равно present.

owner

string

Имя пользователя, которому должен принадлежать объект файловой системы; оно передаётся команде chown.

Если значение не указано, используется текущий пользователь. Если пользователь — root, можно сохранить прежнего владельца.

Числовое имя пользователя будет считаться идентификатором пользователя, а не именем. Во избежание путаницы не используйте числовые имена пользователей.

path

path / обязательный

Абсолютный путь на удалённом узле, по которому должен быть создан или уже находится сгенерированный файл CRL.

privatekey_content

string

Содержимое закрытого ключа центра сертификации (CA), используемого для подписания списка CRL.

Если state равно present, необходимо указать либо privatekey_path, либо privatekey_content, но не оба параметра одновременно.

privatekey_passphrase

string

Парольная фраза для privatekey_path.

Параметр необходим, если закрытый ключ защищён паролем.

privatekey_path

path

Путь к закрытому ключу центра сертификации (CA), используемому для подписания списка CRL.

Если state равно present, необходимо указать либо privatekey_path, либо privatekey_content, но не оба параметра одновременно.

return_content

boolean

Если задано значение true, содержимое текущего или сгенерированного списка CRL будет возвращено как crl.

Варианты:

  • false ← (по умолчанию)
  • true

revoked_certificates

list / элементы=dictionary

Список сертификатов для отзыва.

Обязателен, если state равно present.

content

string

Содержимое сертификата в формате PEM.

Серийный номер и издатель будут извлечены из сертификата.

Несовместим с revoked_certificates[].path и revoked_certificates[].serial_number. Необходимо указать один из этих трёх параметров.

invalidity_date

string

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

Время можно указать как относительное значение или абсолютную отметку времени.

Время всегда интерпретируется как UTC.

Допустимый формат: [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).

Обратите внимание: при использовании относительного времени модуль НЕ является идемпотентным. Это НЕ изменится, если для ignore_timestamps задано значение true.

invalidity_date_critical

boolean

Должно ли расширение даты недействительности быть критическим.

Варианты:

  • false ← (по умолчанию)
  • true

issuer

list / элементы=string

Издатель сертификата.

Пример: DNS:ca.example.org.

issuer_critical

boolean

Должно ли расширение издателя сертификата быть критическим.

Варианты:

  • false ← (по умолчанию)
  • true

path

path

Путь к сертификату в формате PEM.

Серийный номер и издатель будут извлечены из сертификата.

Несовместим с revoked_certificates[].content и revoked_certificates[].serial_number. Необходимо указать один из этих трёх параметров.

reason

string

Значение расширения причины отзыва.

Варианты:

  • "unspecified"
  • "key_compromise"
  • "ca_compromise"
  • "affiliation_changed"
  • "superseded"
  • "cessation_of_operation"
  • "certificate_hold"
  • "privilege_withdrawn"
  • "aa_compromise"
  • "remove_from_crl"

reason_critical

boolean

Должно ли расширение причины отзыва быть критическим.

Варианты:

  • false ← (по умолчанию)
  • true

revocation_date

string

Момент времени, когда сертификат был отозван.

Время можно указать как относительное значение или абсолютную отметку времени.

Время всегда интерпретируется как UTC.

Допустимый формат: [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).

Обратите внимание: при использовании относительного времени модуль НЕ является идемпотентным, кроме случая, когда для ignore_timestamps задано значение true.

По умолчанию: "+0s"

serial_number

any

Серийный номер сертификата.

Несовместим с revoked_certificates[].path и revoked_certificates[].content. Необходимо указать один из этих трёх параметров.

В зависимости от значения serial_numbers этот параметр принимает целые числа или шестнадцатеричные октетные строки.

Если serial_numbers=integer, необходимо указать целые числа, например 66223.

Если serial_numbers=hex-octets, необходимо указать строки, например 01:02:AF.

Для преобразования между этими двумя представлениями можно использовать фильтры community.crypto.parse_serial и community.crypto.to_serial.

selevel

string

Уровень контекста объекта файловой системы SELinux.

Это атрибут MLS/MCS, иногда называемый range.

Если задано значение _default, будет использоваться часть политики level, если она доступна.

serial_numbers

string

добавлено в community.crypto 2.18.0

Этот параметр определяет, какие значения будут допустимы для revoked_certificates[].serial_number.

Если задано значение integer (по умолчанию), серийные номера считаются целыми числами, например 66223. (Это значение эквивалентно шестнадцатеричной октетной строке 01:02:AF.)

Если задано значение hex-octets, серийные номера считаются шестнадцатеричными октетными строками с разделителями в виде двоеточий, например 01:02:AF. (Это значение эквивалентно целому числу 66223.)

Варианты:

  • "integer" ← (по умолчанию)
  • "hex-octets"

serole

string

Роль в контексте объекта файловой системы SELinux.

Если задано значение _default, будет использоваться часть политики role, если она доступна.

setype

string

Тип в контексте объекта файловой системы SELinux.

Если задано значение _default, будет использоваться часть политики type, если она доступна.

seuser

string

Пользователь в контексте объекта файловой системы SELinux.

По умолчанию используется политика system, если она применима.

Если задано значение _default, будет использоваться часть политики user, если она доступна.

state

string

Определяет, должен ли файл CRL существовать; если его текущее состояние отличается от заданного, выполняется соответствующее действие.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

unsafe_writes

boolean

Определяет, когда использовать атомарные операции для предотвращения повреждения данных или несогласованного чтения целевого объекта файловой системы.

По умолчанию модуль использует атомарные операции, чтобы предотвратить повреждение данных или несогласованное чтение целевых объектов файловой системы. Однако иногда конфигурация системы или её неисправности этому препятствуют. Например, объекты файловой системы, подключённые в Docker, нельзя атомарно обновить из контейнера — их можно записать только небезопасным способом.

Этот параметр позволяет Ansible при сбое атомарных операций использовать небезопасные способы обновления объектов файловой системы (однако он не заставляет Ansible выполнять небезопасную запись).

ВАЖНО! Небезопасная запись подвержена состояниям гонки и может привести к повреждению данных.

Варианты:

  • false ← (по умолчанию)
  • true

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может выполняться в check_mode и возвращать прогноз статуса изменений, не изменяя целевой объект.

diff_mode

Поддержка: полная

В режиме diff возвращает подробные сведения об изменениях (или о том, что может потребоваться изменить в check_mode).

idempotent

Поддержка: частичная

Модуль не является идемпотентным, если force=true.

При использовании относительных временных меток и ignore_timestamps=false (по умолчанию) модуль не является идемпотентным.

При повторном запуске с теми же аргументами вне режима проверки модуль сообщает об отсутствии изменений.

Предполагается, что система, управляемая или опрашиваемая модулем, не изменилась существенным образом.

safe_file_operations

Поддержка: полная

Использует строгие функции Ansible для работы с файлами, чтобы обеспечить правильные разрешения и предотвратить повреждение данных.

Примечания

Примечание

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

См. также

См. также

community.crypto.parse_serial плагин фильтра

Преобразует серийный номер в виде разделённого двоеточиями списка шестнадцатеричных чисел в целое число.

community.crypto.to_serial плагин фильтра

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

Примеры

---
- name: Generate a CRL
  community.crypto.x509_crl:
    path: /etc/ssl/my-ca.crl
    privatekey_path: /etc/ssl/private/my-ca.pem
    issuer:
      CN: My CA
    last_update: "+0s"
    next_update: "+7d"
    revoked_certificates:
      - serial_number: 1234
        revocation_date: 20190331202428Z
        issuer:
          CN: My CA
      - serial_number: 2345
        revocation_date: 20191013152910Z
        reason: affiliation_changed
        invalidity_date: 20191001000000Z
      - path: /etc/ssl/crt/revoked-cert.pem
        revocation_date: 20191010010203Z

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

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

Ключ

Описание

backup_file

string

Имя созданного файла резервной копии.

Возвращается: если имеются изменения и backup равно true

Пример: "/path/to/my-ca.crl.2019-03-09@11:22~"

crl

string

Содержимое CRL (текущего или созданного).

Содержит сам CRL, если format равно pem, и CRL в формате Base64, если format равно der.

Возвращается: если state равно present и return_content равно true

digest

string

Алгоритм подписи, использованный для подписания CRL.

Возвращается: при успешном выполнении

Пример: "sha256WithRSAEncryption"

filename

string

Путь к созданному CRL.

Возвращается: при наличии изменений или успешном выполнении

Пример: "/path/to/my-ca.crl"

format

string

Формат CRL: PEM (pem) или DER (der).

Возвращается: при успешном выполнении

Возможные значения:

  • "pem"
  • "der"

Пример: "pem"

issuer

dictionary

Издатель CRL.

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

Информацию об обработке IDN см. в name_encoding.

Возвращается: при успешном выполнении

Пример: {"commonName": "ca.example.com", "organizationName": "Ansible"}

issuer_ordered

list / элементы=list

Издатель CRL в виде упорядоченного списка кортежей.

Возвращается: при успешном выполнении

Пример: [["organizationName", "Ansible"], [{"commonName": "ca.example.com"}]]

last_update

string

Момент времени, начиная с которого этому CRL можно доверять, в формате ASN.1 TIME.

Возвращается: при успешном выполнении

Пример: "20190413202428Z"

next_update

string

Момент времени, когда будет выпущен новый CRL и клиенту потребуется проверить его, в формате ASN.1 TIME.

Возвращается: при успешном выполнении

Пример: "20190413202428Z"

privatekey

string

Путь к закрытому ключу CA.

Возвращается: при наличии изменений или успешном выполнении

Пример: "/path/to/my-ca.pem"

revoked_certificates

list / элементы=dictionary

Список сертификатов для отзыва.

Возвращается: при успешном выполнении

invalidity_date

string

Момент времени, когда стало известно или возникло подозрение, что закрытый ключ был скомпрометирован либо сертификат по иной причине стал недействительным, в формате ASN.1 TIME.

Возвращается: при успешном выполнении

Пример: "20190413202428Z"

invalidity_date_critical

boolean

Указывает, является ли расширение даты недействительности критическим.

Возвращается: при успешном выполнении

Пример: false

issuer

list / элементы=string

Издатель сертификата.

Информацию об обработке IDN см. в name_encoding.

Возвращается: при успешном выполнении

Пример: ["DNS:ca.example.org"]

issuer_critical

boolean

Указывает, является ли расширение издателя сертификата критическим.

Возвращается: при успешном выполнении

Пример: false

reason

string

Значение расширения причины отзыва.

Возвращается: при успешном выполнении

Возможные значения:

  • "unspecified"
  • "key_compromise"
  • "ca_compromise"
  • "affiliation_changed"
  • "superseded"
  • "cessation_of_operation"
  • "certificate_hold"
  • "privilege_withdrawn"
  • "aa_compromise"
  • "remove_from_crl"

Пример: "key_compromise"

reason_critical

boolean

Указывает, является ли расширение причины отзыва критическим.

Возвращается: при успешном выполнении

Пример: false

revocation_date

string

Момент времени, когда сертификат был отозван, в формате ASN.1 TIME.

Возвращается: при успешном выполнении

Пример: "20190413202428Z"

serial_number

integer

Серийный номер сертификата.

Это возвращаемое значение имеет тип integer. Если вам нужны серийные номера в виде разделённой двоеточиями шестнадцатеричной строки, например 11:22:33, преобразуйте его в этот формат с помощью community.crypto.to_serial.

Возвращается: при успешном выполнении

Пример: 1234

Авторы

  • Felix Fontein (@felixfontein)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь (криптография)
  • Запросить помощь (ACME)
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/crypto/x509_crl_module.html

Spec-Zone.ru

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