Модуль community.crypto.x509_certificate_pipe — создание и/или проверка сертификатов OpenSSL
Примечание
Этот модуль входит в коллекцию community.crypto (версия 3.2.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля потребуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.crypto.x509_certificate_pipe.
Добавлено в community.crypto 1.3.0
Краткое описание
- Реализует понятие поставщика (один из
selfsignedиownca) для вашего сертификата. - Для взаимодействия с OpenSSL использует библиотеку Python cryptography.
- Поставщик
owncaпредназначен для создания сертификата OpenSSL, подписанного сертификатом вашего собственного центра сертификации (CA) (самоподписанного сертификата). - Этот модуль позволяет создавать и повторно создавать сертификаты OpenSSL.
Требования
На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.
- cryptography >= 3.3 (при использовании поставщика
selfsignedилиownca)
Параметры
Параметр | Комментарии |
|---|---|
content строка | Существующий сертификат. |
csr_content строка | Содержимое запроса на подпись сертификата (CSR), использованного для создания этого сертификата. Несовместим с |
csr_path путь | Путь к запросу на подпись сертификата (CSR), использованному для создания этого сертификата. Несовместим с |
force логический | Создавать сертификат, даже если он уже существует. Варианты:
|
ignore_timestamps логический добавлено в community.crypto 2.0.0 | Следует ли игнорировать метки времени «действителен с» и «действителен до» при проверке идемпотентности. При использовании относительных меток времени (например, Варианты:
|
ownca_content строка | Содержимое сертификата центра сертификации (CA). Используется только поставщиком Несовместим с |
ownca_create_authority_key_identifier логический | Создать идентификатор ключа центра сертификации из его сертификата. Если в CSR указан идентификатор ключа центра сертификации, он игнорируется. Идентификатор ключа центра сертификации создаётся на основе идентификатора ключа субъекта сертификата CA, если он доступен. Если он недоступен, используется открытый ключ сертификата CA. Используется только поставщиком Варианты:
|
ownca_create_subject_key_identifier строка | Создавать ли идентификатор ключа субъекта (SKI) на основе открытого ключа. Значение Значение Значение Используется только поставщиком Варианты:
|
ownca_digest строка | Алгоритм дайджеста, используемый для сертификата Используется только поставщиком По умолчанию: |
ownca_not_after строка | Момент времени, после которого сертификат становится недействительным. Время можно указать относительно текущего момента или в виде абсолютной метки времени. Время всегда интерпретируется как UTC. Допустимый формат: Если это значение не указано, срок действия сертификата истечёт через 10 лет. Обратите внимание, что это значение не используется для определения необходимости повторного создания существующего сертификата. Это поведение можно изменить, установив для параметра Используется только поставщиком В macOS 10.15 и более поздних версиях срок действия сертификатов TLS-сервера не должен превышать 825 дней. Подробнее см. на странице https://support.apple.com/en-us/HT210176. По умолчанию: |
ownca_not_before строка | Момент времени, с которого сертификат становится действительным. Время можно указать относительно текущего момента или в виде абсолютной метки времени. Время всегда интерпретируется как UTC. Допустимый формат: Если это значение не указано, сертификат начнёт действовать с текущего момента. Обратите внимание, что это значение не используется для определения необходимости повторного создания существующего сертификата. Это поведение можно изменить, установив для параметра Используется только поставщиком По умолчанию: |
ownca_path путь | Абсолютный путь на удалённом узле к сертификату центра сертификации (CA). Используется только поставщиком Несовместим с |
ownca_privatekey_content строка | Содержимое закрытого ключа центра сертификации (CA), используемого для подписи сертификата. Используется только поставщиком Несовместим с |
ownca_privatekey_passphrase строка | Парольная фраза для Используется только поставщиком |
ownca_privatekey_path путь | Путь к закрытому ключу центра сертификации (CA), используемому для подписи сертификата. Используется только поставщиком Несовместим с |
ownca_version целое число | Версия сертификата В настоящее время почти всегда следует использовать Используется только поставщиком Варианты:
|
privatekey_content строка | Содержимое закрытого ключа, используемого для подписи сертификата. Несовместим с |
privatekey_passphrase строка | Парольная фраза для Обязателен, если закрытый ключ защищён паролем. |
privatekey_path путь | Путь к закрытому ключу, используемому для подписи сертификата. Несовместим с |
provider строка / обязательный | Имя поставщика, используемого для создания или получения сертификата OpenSSL. Поставщик Варианты:
|
select_crypto_backend строка | Определяет, какую криптографическую подсистему использовать. По умолчанию используется Если указано Обратите внимание: в community.crypto 3.0.0 все значения работают одинаково. В последующих версиях этот параметр будет объявлен устаревшим. Рекомендуется не указывать его явно. Варианты:
|
selfsigned_create_subject_key_identifier строка | Создавать ли идентификатор ключа субъекта (SKI) на основе открытого ключа. Значение Значение Значение Используется только поставщиком Варианты:
|
selfsigned_digest строка | Алгоритм дайджеста, используемый при самоподписании сертификата. Используется только поставщиком По умолчанию: |
selfsigned_not_after псевдонимы: selfsigned_notAfter строка | Момент времени, после которого сертификат становится недействительным. Время можно указать относительно текущего момента или в виде абсолютной метки времени. Время всегда интерпретируется как UTC. Допустимый формат: Если это значение не указано, срок действия сертификата истечёт через 10 лет. Обратите внимание, что это значение не используется для определения необходимости повторного создания существующего сертификата. Это поведение можно изменить, установив для параметра Используется только поставщиком В macOS 10.15 и более поздних версиях срок действия сертификатов TLS-сервера не должен превышать 825 дней. Подробнее см. на странице https://support.apple.com/en-us/HT210176. По умолчанию: |
selfsigned_not_before псевдонимы: selfsigned_notBefore строка | Момент времени, с которого сертификат становится действительным. Время можно указать относительно текущего момента или в виде абсолютной метки времени. Время всегда интерпретируется как UTC. Допустимый формат: Если это значение не указано, сертификат начнёт действовать с текущего момента. Обратите внимание, что это значение не используется для определения необходимости повторного создания существующего сертификата. Это поведение можно изменить, установив для параметра Используется только поставщиком По умолчанию: |
selfsigned_version целое число | Версия сертификата В настоящее время почти всегда следует использовать Используется только поставщиком Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная Начиная с community.crypto 3.0.0 модуль игнорирует режим проверки и всегда работает так, как если бы режим проверки не был включён. | Может выполняться в режиме |
diff_mode | Поддержка: полная | В режиме diff возвращает сведения об изменениях (или о возможных изменениях в |
idempotent | Поддержка: частичная При использовании относительных меток времени и Параметр | При повторном запуске с теми же аргументами вне режима проверки второй запуск сообщает об отсутствии изменений. Это предполагает, что система, которой управляет модуль или к которой он обращается, не изменилась существенным образом. |
Примечания
Примечание
- Все значения времени ASN.1 следует указывать в формате YYYYMMDDHHMMSSZ.
- Указанная дата должна быть в формате UTC. Минуты и секунды обязательны.
- В целях безопасности при использовании поставщика
owncaНЕ следует запускать community.crypto.x509_certificate на целевой машине; вместо этого запускайте его на выделенной машине CA. Рекомендуется не хранить закрытый ключ CA на целевой машине. После подписания сертификат можно перенести на целевую машину. - Для поставщика
selfsignedпараметрыcsr_pathиcsr_contentнеобязательны. Если их не указать, будет создан сертификат без какой-либо информации (субъекта, альтернативных имён субъекта, использования ключа и т. д.).
См. также
См. также
- community.crypto.x509_certificate
-
Создание и/или проверка сертификатов OpenSSL.
- community.crypto.openssl_csr
-
Создание запроса на подпись сертификата OpenSSL (CSR).
- community.crypto.openssl_csr_pipe
-
Создание запроса на подпись сертификата OpenSSL (CSR).
- community.crypto.openssl_dhparam
-
Создание параметров Диффи — Хеллмана OpenSSL.
- community.crypto.openssl_pkcs12
-
Создание архива PKCS#12 OpenSSL.
- community.crypto.openssl_privatekey
-
Создание закрытых ключей OpenSSL.
- community.crypto.openssl_privatekey_pipe
-
Создание закрытых ключей OpenSSL без доступа к диску.
- community.crypto.openssl_publickey
-
Создание открытого ключа OpenSSL на основе закрытого ключа.
Примеры
---
- name: Generate a Self Signed OpenSSL certificate
community.crypto.x509_certificate_pipe:
provider: selfsigned
privatekey_path: /etc/ssl/private/ansible.com.pem
csr_path: /etc/ssl/csr/ansible.com.csr
register: result
- name: Print the certificate
ansible.builtin.debug:
var: result.certificate
# In the following example, both CSR and certificate file are stored on the
# machine where ansible-playbook is executed, while the OwnCA data (certificate,
# private key) are stored on the remote machine.
- name: (1/2) Generate an OpenSSL Certificate with the CSR provided inline
community.crypto.x509_certificate_pipe:
provider: ownca
content: "{{ lookup('ansible.builtin.file', '/etc/ssl/csr/www.ansible.com.crt') }}"
csr_content: "{{ lookup('ansible.builtin.file', '/etc/ssl/csr/www.ansible.com.csr') }}"
ownca_cert: /path/to/ca_cert.crt
ownca_privatekey: /path/to/ca_cert.key
ownca_privatekey_passphrase: hunter2
register: result
- name: (2/2) Store certificate
ansible.builtin.copy:
dest: /etc/ssl/csr/www.ansible.com.crt
content: "{{ result.certificate }}"
delegate_to: localhost
when: result is changed
# In the following example, the certificate from another machine is signed by
# our OwnCA whose private key and certificate are only available on this
# machine (where ansible-playbook is executed), without having to write
# the certificate file to disk on localhost. The CSR could have been
# provided by community.crypto.openssl_csr_pipe earlier, or also have been
# read from the remote machine.
- name: (1/3) Read certificate's contents from remote machine
ansible.builtin.slurp:
src: /etc/ssl/csr/www.ansible.com.crt
register: certificate_content
- name: (2/3) Generate an OpenSSL Certificate with the CSR provided inline
community.crypto.x509_certificate_pipe:
provider: ownca
content: "{{ certificate_content.content | b64decode }}"
csr_content: "{{ the_csr }}"
ownca_cert: /path/to/ca_cert.crt
ownca_privatekey: /path/to/ca_cert.key
ownca_privatekey_passphrase: hunter2
delegate_to: localhost
register: result
- name: (3/3) Store certificate
ansible.builtin.copy:
dest: /etc/ssl/csr/www.ansible.com.crt
content: "{{ result.certificate }}"
when: result is changed
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
certificate строка | Содержимое сертификата (текущего или сгенерированного). Возвращается: при изменении или успешном выполнении |
Ссылки на коллекцию
© 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_certificate_pipe_module.html