Spec-Zone.ru › Ansible 2.11

community.crypto.x509_certificate_pipe – Генерация и/или проверка сертификатов OpenSSL

Примечание

Этот плагин входит в состав коллекции community.crypto (версия 1.4.0).

Для его установки используйте: ansible-galaxy collection install community.crypto.

Для использования в плейбуке укажите: community.crypto.x509_certificate_pipe.

Новое в версии 1.3.0: of community.crypto

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Обзор

  • Если библиотеки cryptography и PyOpenSSL доступны (и соответствуют минимальным требованиям к версии), cryptography будет предпочтительнее в качестве бэкенда по сравнению с PyOpenSSL (если бэкенд не принудительно установлен с помощью select_crypto_backend). Обратите внимание, что бэкенд PyOpenSSL был устаревшим в Ansible 2.9 и будет удалён в community.crypto 2.0.0.
  • Он реализует понятие провайдера (например, selfsigned, ownca, entrust) для вашего сертификата.
  • Он использует библиотеки pyOpenSSL или cryptography для взаимодействия с OpenSSL.
  • Обратите внимание, что модуль перегенерирует существующий сертификат, если он не соответствует параметрам модуля или кажется повреждённым. Если вы обеспокоены тем, что это может перезаписать ваш существующий сертификат, рассмотрите использование параметра backup.
  • Провайдер ownca предназначен для генерации сертификата OpenSSL, подписанного вашим собственным сертификатом CA (Центра сертификации) (самозаверяющий сертификат).
  • Этот модуль позволяет (пере)генерировать сертификаты OpenSSL.

Требования

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

  • PyOpenSSL >= 0.15 или cryptography >= 1.6 (если используется selfsigned, ownca или assertonly провайдер)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
content
строка
Существующий сертификат.
csr_content
строка
Содержание запроса на подписание сертификата (CSR), используемого для генерации этого сертификата.
Исключительно с csr_path.
csr_path
путь
Путь к файлу запроса на подписание сертификата (CSR), используемому для генерации этого сертификата.
Исключительно с csr_content.
entrust_api_client_cert_key_path
путь
Путь к закрытому ключу клиентского сертификата, используемого для аутентификации в API сервисов сертификации Entrust (ECS).
Используется только провайдером entrust.
Требуется, если провайдер entrust.
entrust_api_client_cert_path
путь
Путь к клиентскому сертификату, используемому для аутентификации в API сервисов сертификации Entrust (ECS).
Используется только провайдером entrust.
Требуется, если провайдер entrust.
entrust_api_key
строка
Ключ (пароль) для аутентификации в API сервисов сертификации Entrust (ECS).
Используется только провайдером entrust.
Требуется, если провайдер entrust.
entrust_api_specification_path
путь
По умолчанию:
"https://cloud.entrust.net/EntrustCloud/documentation/cms-api-2.1.0.yaml"
Путь к файлу спецификации, определяющему конфигурацию API сервисов сертификации Entrust (ECS).
Можно использовать для хранения локальной копии спецификации, чтобы избежать её загрузки каждый раз при использовании модуля.
Используется только провайдером entrust.
entrust_api_user
строка
Имя пользователя для аутентификации в API сервисов сертификации Entrust (ECS).
Используется только провайдером entrust.
Требуется, если провайдер entrust.
entrust_cert_type
строка
    Варианты:
  • STANDARD_SSL ←
  • ADVANTAGE_SSL
  • UC_SSL
  • EV_SSL
  • WILDCARD_SSL
  • PRIVATE_SSL
  • PD_SSL
  • CDS_ENT_LITE
  • CDS_ENT_PRO
  • SMIME_ENT
Укажите тип запрашиваемого сертификата.
Используется только провайдером entrust.
entrust_not_after
строка
По умолчанию:
"+365d"
Точка времени, после которой сертификат перестает быть действительным.
Время можно указать как относительное время, так и абсолютную метку времени.
Действительный формат абсолютного времени ASN.1 TIME, например 2019-06-18.
Действительный формат относительного времени [+-]timespec, где timespec может быть целым числом + [w | d | h | m | s], например +365d или +32w1d2h).
Время всегда интерпретируется как UTC.
Обратите внимание, что поддерживается только дата (день, месяц, год) для указания даты окончания действия выданного сертификата.
Полная дата и время корректируются до EST (GMT -5:00) перед выдачей, что может привести к сертификату с датой окончания действия на день раньше, чем ожидалось, если используется относительное время.
Минимальный срок действия сертификата 90 дней, максимальный — три года.
Если это значение не указано, сертификат перестанет быть действительным через 365 дней от даты выдачи.
Используется только провайдером entrust.
entrust_requester_email
строка
Электронная почта запрашивающего сертификат (для отслеживания).
Используется только провайдером entrust.
Требуется, если провайдер entrust.
entrust_requester_name
строка
Имя запрашивающего сертификат (для отслеживания).
Используется только провайдером entrust.
Требуется, если провайдер entrust.
entrust_requester_phone
строка
Номер телефона запрашивающего сертификат (для отслеживания).
Используется только провайдером entrust.
Требуется, если провайдер entrust.
force
логическое значение
    Варианты:
  • нет ←
  • да
Сгенерировать сертификат, даже если он уже существует.
ownca_content
строка
Содержание сертификата CA (Уполномоченной организации).
Используется только провайдером ownca.
Исключительно с ownca_path.
ownca_create_authority_key_identifier
логическое значение
    Варианты:
  • нет
  • да ←
Создать идентификатор ключа Уполномоченной организации из сертификата CA. Если в CSR предоставлен идентификатор ключа Уполномоченной организации, он игнорируется.
Идентификатор ключа Уполномоченной организации генерируется из идентификатора ключа субъекта сертификата CA, если он доступен. Если он недоступен, используется открытый ключ сертификата CA.
Используется только провайдером ownca.
Обратите внимание, что это поддерживается только если используется бэкенд cryptography!
ownca_create_subject_key_identifier
строка
    Варианты:
  • create_if_not_provided ←
  • always_create
  • never_create
Необходимо ли создать идентификатор ключа субъекта (SKI) из открытого ключа.
Значение create_if_not_provided (по умолчанию) создает SKI только тогда, когда CSR его не предоставляет.
Значение always_create всегда создает SKI. Если CSR предоставляет его, он игнорируется.
Значение never_create никогда не создает SKI. Если CSR предоставляет его, он используется.
Используется только провайдером ownca.
Обратите внимание, что это поддерживается только если используется бэкенд cryptography!
ownca_digest
строка
По умолчанию:
"sha256"
Алгоритм хеширования, используемый для сертификата ownca.
Используется только провайдером ownca.
ownca_not_after
строка
По умолчанию:
"+3650d"
Точка времени, после которой сертификат перестает быть действительным.
Время можно указать как относительное время, так и абсолютную метку времени.
Время всегда интерпретируется как UTC.
Действительный формат [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s], например +32w1d2h.
Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
Если это значение не указано, сертификат перестанет быть действительным через 10 лет.
Используется только провайдером ownca.
В macOS 10.15 и более поздних версиях сертификаты сервера TLS должны иметь срок действия 825 дней или меньше. Для получения более подробной информации см. https://support.apple.com/en-us/HT210176.
ownca_not_before
строка
По умолчанию:
"+0s"
Точка времени, с которой сертификат действителен.
Время можно указать как относительное время, так и абсолютную метку времени.
Время всегда интерпретируется как UTC.
Действительный формат [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s], например +32w1d2h.
Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
Если это значение не указано, сертификат начнет действовать с текущего момента.
Используется только провайдером ownca.
ownca_path
путь
Абсолютный путь к сертификату CA (Уполномоченной организации).
Используется только провайдером ownca.
Исключительно с ownca_content.
ownca_privatekey_content
строка
Содержание закрытого ключа CA (Уполномоченной организации) для использования при подписи сертификата.
Используется только провайдером ownca.
Исключительно с ownca_privatekey_path.
ownca_privatekey_passphrase
строка
Пароль для ownca_privatekey_path или ownca_privatekey_content.
Используется только провайдером ownca.
ownca_privatekey_path
путь
Путь к закрытому ключу CA (Уполномоченной организации) для использования при подписи сертификата.
Используется только провайдером ownca.
Исключительно с ownca_privatekey_content.
ownca_version
целое число
По умолчанию:
3
Версия сертификата ownca.
В настоящее время почти всегда должно быть 3.
Используется только провайдером ownca.
privatekey_content
строка
Путь к закрытому ключу для использования при подписи сертификата.
Исключительно с privatekey_path.
privatekey_passphrase
строка
Пароль к файлу privatekey_path или содержимому privatekey_content.
Требуется, если закрытый ключ защищен паролем.
privatekey_path
путь
Путь к закрытому ключу, используемому при подписании сертификата.
Исключает использование privatekey_content.
provider
строка / обязательно
    Варианты:
  • entrust
  • ownca
  • selfsigned
Имя поставщика, используемого для генерации/получения сертификата OpenSSL.
Поставщик entrust требует учетных данных для API Entrust Certificate Services (ECS).
select_crypto_backend
строка
    Варианты:
  • auto ←
  • cryptography
  • pyopenssl
Определяет, какой криптографический бэкенд использовать.
По умолчанию выбирается auto, который пытается использовать cryptography (если доступен), в противном случае использует pyopenssl.
Если установлено значение pyopenssl, будет использоваться библиотека pyOpenSSL.
Если установлено значение cryptography, будет использоваться библиотека cryptography.
Обратите внимание, что бэкенд pyopenssl устарел в Ansible 2.9 и будет удален в community.crypto 2.0.0. После этого доступен только бэкенд cryptography.
selfsigned_create_subject_key_identifier
строка
    Варианты:
  • create_if_not_provided ←
  • always_create
  • never_create
Указывает, создавать ли Subject Key Identifier (SKI) из открытого ключа.
Значение create_if_not_provided (по умолчанию) создаёт SKI только тогда, когда CSR его не предоставляет.
Значение always_create всегда создаёт SKI. Если CSR предоставляет SKI, он игнорируется.
Значение never_create никогда не создаёт SKI. Если CSR предоставляет SKI, он используется.
Используется только поставщиком selfsigned.
Обратите внимание, что это поддерживается только если используется бэкенд cryptography.
selfsigned_digest
строка
По умолчанию:
"sha256"
Алгоритм дайджеста, используемый при самоподписи сертификата.
Используется только поставщиком selfsigned.
selfsigned_not_after
строка
По умолчанию:
"+3650d"
Время истечения срока действия сертификата.
Время можно указать как относительное время, так и как абсолютную метку времени.
Время всегда интерпретируется как UTC.
Формат [+-]timespec | ASN.1 TIME, где timespec — целое число + [w | d | h | m | s] (например, +32w1d2h).
Обратите внимание, что при использовании относительного времени этот модуль не идемпотентен.
Если это значение не указано, срок действия сертификата истекает через 10 лет.
Используется только поставщиком selfsigned.
На macOS 10.15 и новее сертификаты TLS сервера должны иметь срок действия не более 825 дней. Подробнее см. https://support.apple.com/en-us/HT210176.

псевдонимы: selfsigned_notAfter
selfsigned_not_before
строка
По умолчанию:
"+0s"
Начало периода действия сертификата.
Время можно указать как относительное время, так и как абсолютную метку времени.
Время всегда интерпретируется как UTC.
Формат [+-]timespec | ASN.1 TIME, где timespec — целое число + [w | d | h | m | s] (например, +32w1d2h).
Обратите внимание, что при использовании относительного времени этот модуль не идемпотентен.
Если это значение не указано, сертификат начинает действовать с текущего момента.
Используется только поставщиком selfsigned.

псевдонимы: selfsigned_notBefore
selfsigned_version
целое число
По умолчанию:
3
Версия сертификата selfsigned.
В настоящее время почти всегда должно быть 3.
Используется только поставщиком selfsigned.

Примечания

Примечание

  • Поддерживает check_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

Официальная документация по модулю community.crypto.x509_certificate.

community.crypto.openssl_csr

Официальная документация по модулю community.crypto.openssl_csr.

community.crypto.openssl_csr_pipe

Официальная документация по модулю community.crypto.openssl_csr_pipe.

community.crypto.openssl_dhparam

Официальная документация по модулю community.crypto.openssl_dhparam.

community.crypto.openssl_pkcs12

Официальная документация по модулю community.crypto.openssl_pkcs12.

community.crypto.openssl_privatekey

Официальная документация по модулю community.crypto.openssl_privatekey.

community.crypto.openssl_privatekey_pipe

Официальная документация по модулю community.crypto.openssl_privatekey_pipe.

community.crypto.openssl_publickey

Официальная документация по модулю community.crypto.openssl_publickey.

Примеры

- 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('file', '/etc/ssl/csr/www.ansible.com.crt') }}"
    csr_content: "{{ lookup('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
строка
изменено или успех
Содержимое (текущего или сгенерированного) сертификата.



Авторы

  • Yanis Guenane (@Spredzy)
  • Markus Teufelberger (@MarkusTeufelberger)
  • Felix Fontein (@felixfontein)

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

Spec-Zone.ru

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