Модуль community.crypto.x509_certificate_pipe — Генерация и/или проверка сертификатов OpenSSL
Примечание
Этот модуль является частью коллекции community.crypto (версия 2.22.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,entrust) для вашего сертификата. - Использует библиотеку cryptography python для взаимодействия с OpenSSL.
- Поставщик
owncaпредназначен для генерации сертификата OpenSSL, подписанного вашим собственным сертификатом CA (Центр сертификации) (самоподписанный сертификат). - Этот модуль позволяет (снова) генерировать сертификаты OpenSSL.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- cryptography >= 1.6 (если используется поставщик
selfsignedилиownca)
Параметры
Параметр | Комментарии |
|---|---|
content string | Существующий сертификат. |
csr_content string | Содержимое запроса на подпись сертификата (CSR), используемого для генерации этого сертификата. Взаимоисключающий параметр с |
csr_path path | Путь к запросу на подпись сертификата (CSR), используемому для генерации этого сертификата. Взаимоисключающий параметр с |
entrust_api_client_cert_key_path path | Путь к закрытому ключу клиентского сертификата, используемого для аутентификации в API Entrust Certificate Services (ECS). Используется только провайдером Обязательный параметр, если провайдер — |
entrust_api_client_cert_path path | Путь к клиентскому сертификату, используемому для аутентификации в API Entrust Certificate Services (ECS). Используется только провайдером Обязательный параметр, если провайдер — |
entrust_api_key string | Ключ (пароль) для аутентификации в API Entrust Certificate Services (ECS). Используется только провайдером Обязательный параметр, если провайдер — |
entrust_api_specification_path path | Путь к файлу спецификации, определяющему конфигурацию API Entrust Certificate Services (ECS). Можно использовать его для хранения локальной копии спецификации, чтобы избежать её загрузки каждый раз при использовании модуля. Используется только провайдером Значение по умолчанию: |
entrust_api_user string | Имя пользователя для аутентификации в API Entrust Certificate Services (ECS). Используется только провайдером Обязательный параметр, если провайдер — |
entrust_cert_type string | Указывает тип запрашиваемого сертификата. Используется только провайдером Варианты:
|
entrust_not_after string | Момент времени, когда сертификат перестаёт быть действительным. Время может быть указано как относительное время или как абсолютная метка времени. Формат абсолютного времени: Формат относительного времени: Время всегда интерпретируется как UTC. Обратите внимание, что для указания даты истечения срока действия выпущенного сертификата поддерживается только дата (день, месяц, год). Полная дата и время корректируются до EST (GMT -5:00) перед выдачей, что может привести к сертификату со сроком действия на один день раньше, чем ожидалось, если используется относительное время. Минимальный срок действия сертификата составляет 90 дней, а максимальный — три года. Если это значение не указано, сертификат перестанет быть действительным через 365 дней с даты выпуска. Используется только провайдером Обратите внимание, что это значение не охватывается параметром Значение по умолчанию: |
entrust_requester_email string | Электронная почта лица, запросившего сертификат (для целей отслеживания). Используется только провайдером Обязательный параметр, если провайдер — |
entrust_requester_name string | Имя лица, запросившего сертификат (для целей отслеживания). Используется только провайдером Обязательный параметр, если провайдер — |
entrust_requester_phone string | Номер телефона лица, запросившего сертификат (для целей отслеживания). Используется только провайдером Обязательный параметр, если провайдер — |
force boolean | Сгенерировать сертификат, даже если он уже существует. Варианты:
|
ignore_timestamps boolean добавлено в community.crypto 2.0.0 | Следует ли игнорировать метки времени «not before» и «not after» для проверок идемпотентности. Лучше сохранить значение по умолчанию Варианты:
|
ownca_content string | Содержимое сертификата центра сертификации (CA). Используется только провайдером Взаимоисключающий параметр с |
ownca_create_authority_key_identifier boolean | Создать идентификатор ключа центра сертификации из сертификата ЦС. Если запрос на подпись сертификата (CSR) предоставил идентификатор ключа центра сертификации, он игнорируется. Идентификатор ключа центра сертификации создается из идентификатора субъектного ключа сертификата ЦС, если доступен. Если он недоступен, будет использоваться открытый ключ сертификата ЦС. Это используется только поставщиком Обратите внимание, что это поддерживается только в случае использования бэкэнда Варианты:
|
ownca_create_subject_key_identifier string | Создавать ли идентификатор субъектного ключа (SKI) из открытого ключа. Значение Значение Значение Это используется только поставщиком Обратите внимание, что это поддерживается только в случае использования бэкэнда Варианты:
|
ownca_digest string | Алгоритм дайджеста, который будет использоваться для сертификата Это используется только поставщиком Значение по умолчанию: |
ownca_not_after string | Момент времени, когда сертификат перестает быть действительным. Время может быть указано как относительное время или как абсолютное значение метки времени. Время всегда интерпретируется как UTC. Допустимый формат - Если это значение не указано, сертификат перестанет быть действительным через 10 лет. Обратите внимание, что это значение не используется для определения того, следует ли повторно генерировать существующий сертификат. Это можно изменить, установив параметр Это используется только поставщиком В macOS 10.15 и более поздних версиях серверные сертификаты TLS должны иметь срок действия 825 дней или меньше. Более подробную информацию см. по адресу https://support.apple.com/en-us/HT210176. Значение по умолчанию: |
ownca_not_before string | Момент времени, с которого сертификат действителен. Время может быть указано как относительное время или как абсолютное значение метки времени. Время всегда интерпретируется как UTC. Допустимый формат - Если это значение не указано, сертификат станет действительным с текущего момента. Обратите внимание, что это значение не используется для определения того, следует ли повторно генерировать существующий сертификат. Это можно изменить, установив параметр Это используется только поставщиком Значение по умолчанию: |
ownca_path path | Удаленный абсолютный путь к сертификату центра сертификации (ЦС). Это используется только поставщиком Взаимоисключающий параметр с |
ownca_privatekey_content string | Содержимое закрытого ключа центра сертификации (ЦС), который будет использоваться при подписании сертификата. Это используется только поставщиком Взаимоисключающий параметр с |
ownca_privatekey_passphrase string | Пароль для Это используется только поставщиком |
ownca_privatekey_path path | Путь к закрытому ключу центра сертификации (ЦС), который будет использоваться при подписании сертификата. Это используется только поставщиком Взаимоисключающий параметр с |
ownca_version integer | Версия сертификата В настоящее время это почти всегда должно быть Это используется только поставщиком Значение по умолчанию: |
privatekey_content string | Содержимое закрытого ключа, который будет использоваться при подписании сертификата. Взаимоисключающий параметр с |
privatekey_passphrase string | Пароль для Требуется, если закрытый ключ защищен паролем. |
privatekey_path path | Путь к закрытому ключу, который будет использоваться при подписании сертификата. Взаимоисключающий параметр с |
provider string / required | Имя поставщика, который будет использоваться для генерации/извлечения сертификата OpenSSL. Поставщик Варианты:
|
select_crypto_backend string | Определяет, какой криптографический бэкенд использовать. По умолчанию используется Если установлено значение Варианты:
|
selfsigned_create_subject_key_identifier string | Указывает, создавать ли Subject Key Identifier (SKI) из открытого ключа. Значение Значение Значение Используется только поставщиком Обратите внимание, что это поддерживается только если используется бэкенд Варианты:
|
selfsigned_digest string | Алгоритм дайджеста, используемый при самоподписи сертификата. Используется только поставщиком По умолчанию: |
selfsigned_not_after aliases: selfsigned_notAfter string | Время прекращения действия сертификата. Время может быть указано как относительно, так и как абсолютная метка времени. Время всегда интерпретируется как UTC. Допустимый формат: Если значение не указано, сертификат перестаёт действовать через 10 лет. Обратите внимание, что это значение не используется для определения необходимости перегенерации существующего сертификата. Это можно изменить, установив опцию Используется только поставщиком На macOS 10.15 и новее сертификаты сервера TLS должны иметь срок действия не более 825 дней. Подробнее см. https://support.apple.com/en-us/HT210176. По умолчанию: |
selfsigned_not_before aliases: selfsigned_notBefore string | Время начала действия сертификата. Время может быть указано как относительно, так и как абсолютная метка времени. Время всегда интерпретируется как UTC. Допустимый формат: Если значение не указано, сертификат начинает действовать с текущего момента. Обратите внимание, что это значение не используется для определения необходимости перегенерации существующего сертификата. Это можно изменить, установив опцию Используется только поставщиком По умолчанию: |
selfsigned_version integer | Версия сертификата В настоящее время почти всегда должна быть Используется только поставщиком По умолчанию: |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная В режиме проверки, приватные ключи не будут (пере)генерированы, будет установлено только значение изменения. Это изменится в community.crypto 3.0.0. Начиная с community.crypto 3.0.0, модуль будет игнорировать режим проверки и всегда вести себя так, как если бы режим проверки был неактивен. Если вы считаете, что это нарушает ваш случай использования данного модуля, создайте проблему в репозитории community.crypto. | Может работать в режиме проверки и возвращать предсказание изменённого состояния без модификации целевого объекта. |
diff_mode | Поддержка: полная | Возвращает подробности о том, что изменилось (или, возможно, требует изменения в |
Примечания
Примечание
- Все значения ASN.1 TIME должны быть указаны в формате YYYYMMDDHHMMSSZ.
- Указанная дата должна быть в UTC. Минуты и секунды обязательны.
- По соображениям безопасности при использовании поставщика
ownca, не следует запускать модуль community.crypto.x509_certificate на целевой машине, а на выделенном сервере CA. Рекомендуется не хранить приватный ключ CA на целевой машине. После подписи сертификат может быть перенесён на целевую машину. - Для поставщика
selfsigned,csr_pathиcsr_contentнеобязательны. Если не указаны, создаётся сертификат без любой информации (Subject, Subject Alternative Names, Key Usage и т.д.).
См. также
См. также
- community.crypto.x509_certificate
-
Генерация и/или проверка сертификатов OpenSSL.
- community.crypto.openssl_csr
-
Генерация запроса на подпись сертификата (CSR) OpenSSL.
- community.crypto.openssl_csr_pipe
-
Генерация запроса на подпись сертификата (CSR) OpenSSL.
- community.crypto.openssl_dhparam
-
Генерация параметров Diffie-Hellman OpenSSL.
- community.crypto.openssl_pkcs12
-
Генерация архива OpenSSL PKCS#12.
- 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 строка | Содержимое сертификата (текущего или сгенерированного). Возвращается: changed или success |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/crypto/x509_certificate_pipe_module.html