Spec-Zone.ru › Ansible 2.10

community.crypto.ecs_certificate – Запрос SSL/TLS-сертификатов с помощью API Entrust Certificate Services (ECS)

Примечание

Этот плагин является частью коллекции community.crypto (версия 1.3.0).

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

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

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

Обзор

  • Создание, перевыпуск и продление сертификатов с помощью API Entrust Certificate Services (ECS).
  • Требуются учетные данные для API Entrust Certificate Services (ECS).
  • Для запроса сертификата домен и организация, используемые в запросе на подписание сертификата, должны быть уже проверены в системе ECS. Данный модуль не отвечает за выполнение этих шагов.

Требования

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

  • PyYAML >= 3.11
  • cryptography >= 1.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
additional_emails
список / элементы=строка
Список дополнительных адресов электронной почты для получения уведомлений о доставке и уведомлений о сроке действия сертификата.
backup
логический тип
    Варианты:
  • нет ←
  • да
Нужно ли создавать резервную копию сертификата в path.
cert_expiry
строка
Дата истечения срока действия сертификата в формате RFC3339. Например, 2020-02-23, 2020-02-23T15:00:00.05Z.
cert_expiry поддерживается только для запросов request_type=new или request_type=renew. Если request_type=reissue, cert_expiry будет использоваться для первого выпуска сертификата, но последующие выпуски будут иметь тот же срок действия, что и первоначальный сертификат.
Перевыпущенный сертификат всегда будет иметь тот же срок действия, что и исходный сертификат.
Обратите внимание, что для указания даты истечения срока действия поддерживается только дата (день, месяц, год). Если вы выберете указание времени истечения срока действия с датой, время будет скорректировано до восточного стандартного времени (EST). Это может привести к непредвиденному сдвигу даты истечения срока действия на предыдущий день.
Применимо только к учетным записям с моделью инвентаризации пула.
Можно указать только одно из значений cert_expiry или cert_lifetime.
cert_lifetime
строка
    Варианты:
  • P1Y
  • P2Y
  • P3Y
Срок действия сертификата.
Применимо ко всем сертификатам для учетных записей с моделью инвентаризации, не использующей пул.
cert_lifetime поддерживается только для запросов request_type=new или request_type=renew. Если request_type=reissue, cert_lifetime будет использоваться для первого выпуска сертификата, но последующие выпуски будут иметь тот же срок действия, что и первоначальный сертификат.
Применимо к сертификатам с cert_type=CDS_INDIVIDUAL, CDS_GROUP, CDS_ENT_LITE, CDS_ENT_PRO, SMIME_ENT для учетных записей с моделью инвентаризации пула.
P1Y — сертификат со сроком действия 1 год.
P2Y — сертификат со сроком действия 2 года.
P3Y — сертификат со сроком действия 3 года.
Можно указать только одно из значений cert_expiry или cert_lifetime.
cert_type
строка
    Варианты:
  • STANDARD_SSL
  • ADVANTAGE_SSL
  • UC_SSL
  • EV_SSL
  • WILDCARD_SSL
  • PRIVATE_SSL
  • PD_SSL
  • CODE_SIGNING
  • EV_CODE_SIGNING
  • CDS_INDIVIDUAL
  • CDS_GROUP
  • CDS_ENT_LITE
  • CDS_ENT_PRO
  • SMIME_ENT
Укажите тип запрашиваемого сертификата.
Если сертификат перевыпускается или обновляется, этот параметр игнорируется, и используется значение cert_type первоначального сертификата.
client_id
целое число
Значение по умолчанию:
1
Идентификатор клиента, под которым отправляется запрос на подпись сертификата.
Если идентификатор клиента не указан, сертификат будет отправлен под основным клиентом с идентификатором 1.
При использовании клиента, отличного от основного, параметр org не может быть указан.
Выпущенный сертификат будет содержать значение организации в имени объекта, представленном клиентом.
csr
строка
Запрос на подпись сертификата (CSR) в кодировке Base-64. csr принимается с или без форматирования PEM вокруг строки Base-64.
Если csr не предоставлен при request_type=reissue или request_type=renew, сертификат будет сгенерирован с тем же открытым ключом, что и обновляемый или перевыпускаемый сертификат.
Если указан subject_alt_name, он переопределит альтернативные имена субъекта в CSR.
Если указан eku, он переопределит расширенное использование ключа в CSR.
Если указан ou, он переопределит организационные подразделения "ou=" в имени объекта CSR, если таковые имеются.
Поле организации "O=" из CSR не будет использоваться. Оно будет заменено значением org, если оно присутствует, а в противном случае — организацией, связанной с client_id.
ct_log
логический тип
    Варианты:
  • нет
  • да
В соответствии с требованиями браузера, этот сертификат может быть опубликован в журналах прозрачности сертификатов (CT). Это лучший способ, который помогает владельцам домена отслеживать сертификаты, выпущенные для их доменов. Обратите внимание, что не все сертификаты подходят для регистрации в CT.
Если ct_log не указан, используется значение по умолчанию учетной записи.
Если ct_log указан и настройки учетной записи это позволяют, ct_log переопределяет значение по умолчанию учетной записи.
Если ct_log установлен на false, но настройки учетной записи установлены на "всегда регистрировать", генерация сертификата завершится ошибкой.
custom_fields
словарь
Сопоставление пользовательских полей для связи с запросом на сертификат и сертификатом.
Поддерживается только если пользовательские поля включены для вашей учетной записи.
Каждое указанное пользовательское поле должно быть пользовательским полем, определённым для вашей учетной записи.
date1
строка
Пользовательское поле даты.
date2
строка
Пользовательское поле даты.
date3
строка
Пользовательское поле даты.
date4
строка
Пользовательское поле даты.
date5
строка
Пользовательское поле даты.
dropdown1
строка
Пользовательское поле выпадающего списка.
dropdown2
строка
Пользовательское поле выпадающего списка.
dropdown3
строка
Пользовательское поле выпадающего списка.
dropdown4
строка
Пользовательское поле выпадающего списка.
dropdown5
строка
Пользовательское поле выпадающего списка.
email1
строка
Пользовательское поле электронной почты.
email2
строка
Пользовательское поле электронной почты.
email3
строка
Пользовательское поле электронной почты.
email4
строка
Пользовательское поле электронной почты.
email5
строка
Пользовательское поле электронной почты.
number1
вещественное число
Пользовательское числовое поле.
number2
вещественное число
Пользовательское числовое поле.
number3
вещественное число
Пользовательское числовое поле.
number4
вещественное число
Пользовательское числовое поле.
number5
вещественное число
Пользовательское числовое поле.
text1
строка
Пользовательское текстовое поле (максимум 500 символов)
text10
строка
Пользовательское текстовое поле (максимум 500 символов)
text11
строка
Пользовательское текстовое поле (максимум 500 символов)
text12
строка
Пользовательское текстовое поле (максимум 500 символов)
text13
строка
Пользовательское текстовое поле (максимум 500 символов)
text14
строка
Пользовательское текстовое поле (максимум 500 символов)
text15
строка
Пользовательское текстовое поле (максимум 500 символов)
text2
строка
Пользовательское текстовое поле (максимум 500 символов)
text3
строка
Пользовательское текстовое поле (максимум 500 символов)
text4
строка
Пользовательское текстовое поле (максимум 500 символов)
text5
строка
Пользовательское текстовое поле (максимум 500 символов)
text6
string
Поле пользовательского текста (максимум 500 символов)
text7
string
Поле пользовательского текста (максимум 500 символов)
text8
string
Поле пользовательского текста (максимум 500 символов)
text9
string
Поле пользовательского текста (максимум 500 символов)
eku
string
    Варианты:
  • SERVER_AUTH
  • CLIENT_AUTH
  • SERVER_AND_CLIENT_AUTH
Если указано, переопределяет использование ключа в csr.
end_user_key_storage_agreement
boolean
    Варианты:
  • нет
  • да
Конечный пользователь сертификата Code Signing должен сгенерировать и сохранить закрытый ключ для этого запроса на криптографически защищённом оборудовании, чтобы соответствовать соглашению Entrust CSP и подписки. Если запрашивается сертификат типа CODE_SIGNING или EV_CODE_SIGNING, вы должны установить end_user_key_storage_agreement в значение true, только если вы подтверждаете, что проинформируете пользователя об этом требовании.
Применимо только к значениям cert_type CODE_SIGNING и EV_CODE_SIGNING.
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
По умолчанию:
"https://cloud.entrust.net/EntrustCloud/documentation/cms-api-2.1.0.yaml"
Путь к файлу спецификации, определяющему конфигурацию API Entrust Certificate Services (ECS).
Вы можете использовать его для хранения локальной копии спецификации, чтобы избежать загрузки каждый раз при использовании модуля.
entrust_api_user
string / обязательно
Имя пользователя для аутентификации в API Entrust Certificate Services (ECS).
force
boolean
    Варианты:
  • нет ←
  • да
Если используется force, запрос сертификата выполняется независимо от того, указывает ли path на существующий действительный сертификат.
Если request_type=renew, принудительное продление завершится неудачей, если сертификат, который обновляется, был выдан в течение последних 30 дней, независимо от значения remaining_days или возвращаемого значения cert_days - API ECS не поддерживает операцию "renew" для сертификатов, которым не исполнилось хотя бы 30 дней.
full_chain_path
path
Путь назначения для полной цепочки сертификатов — сертификатов, промежуточных сертификатов и корневых сертификатов.
org
string
Организация "O=" для включения в сертификат.
Если org не указан, используется организация из клиента, представленного client_id.
За исключением случая, когда cert_type — PD_SSL, это поле нельзя указать, если значение client_id не равно "1" (первичный клиент). Для клиентов, не являющихся первичными, сертификаты могут быть выпущены только с организацией этого клиента.
ou
list / элементы=string
Организационная единица "OU=" для включения в сертификат.
Поведение ou зависит от того, включены ли организационные единицы для вашей учётной записи. Если поддержка организационных единиц отключена для вашей учётной записи, организационные единицы из csr и параметра ou игнорируются.
Если оба csr и ou указаны, значение в ou переопределит поля OU, присутствующие в имени субъекта в csr
Если ни csr, ни ou не указаны для операции продления или перевыпуска, поля OU в исходном сертификате повторно используются.
Недопустимая OU из csr игнорируется, но любые недопустимые организационные единицы в ou приведут к ошибке, указывающей на «Неутверждённую OU». Параметр ou может использоваться для принудительного отказа, если указана неутверждённая организационная единица.
Для текущих продуктов может быть указана только одна OU. Несколько OU зарезервированы для будущих продуктов.
path
path / обязательно
Путь назначения для сгенерированного сертификата в формате PEM.
Если сертификат в этом месте не выпущен Entrust, будет всегда запрашиваться новый сертификат, даже если текущий сертификат технически действителен.
Если в этом месте уже существует сертификат Entrust, его замена зависит от расчёта remaining_days.
Если существующий сертификат заменяется (см. remaining_days, force и tracking_id), запрос нового сертификата, обновления или перевыпуска существующего сертификата зависит от request_type.
remaining_days
целое число
По умолчанию:
30
Количество оставшихся дней действия сертификата. Если cert_days < remaining_days, будет получен новый сертификат с использованием request_type.
Если request_type=renew, продление завершится неудачей, если сертификат, который обновляется, был выдан в течение последних 30 дней, поэтому не устанавливайте значение remaining_days в пределах 30 дней от полного срока действия обрабатываемого сертификата. (например, если вы запрашиваете сертификаты с сроком действия 90 дней, не устанавливайте remaining_days со значением 60 или выше).
Опция force может использоваться для обеспечения того, что всегда запрашивается новый сертификат.
request_type
string
    Варианты:
  • новый ←
  • обновить
  • перевыпустить
  • только_проверить
Операция, выполняемая, если tracking_id ссылается на действительный сертификат для перевыпуска или если в path уже имеется сертификат, но указан force или cert_days < remaining_days.
Указание request_type=validate_only означает, что запрос будет проверен с помощью API ECS, но сертификат не будет выпущен.
Указание request_type=new означает, что запрос сертификата всегда будет отправлен, и будет выдан новый сертификат.
Указание request_type=renew означает, что существующий сертификат (указанный в tracking_id, если он присутствует, иначе path) будет обновлён. Если нет сертификата для обновления, запрашивается новый сертификат.
Указание request_type=reissue означает, что существующий сертификат (указанный в tracking_id, если он присутствует, иначе path) будет перевыпущен. Если нет сертификата для перевыпуска, запрашивается новый сертификат.
Если сертификат был выдан в течение последних 30 дней, операция "обновить" не является допустимой и завершится ошибкой.
Обратите внимание, что reissue - это операция, которая приведёт к аннулированию сертификата, который перевыпускается, будьте осторожны при её использовании.
check_mode поддерживается только если request_type=new
Например, установка request_type=renew и remaining_days=30 и указание на один и тот же сертификат в нескольких запусках игрового набора означает, что при первом запуске будет запрошен новый сертификат. Затем он останется на будущих запусках, пока не окажется в пределах 30 дней до истечения срока действия, после чего будет выполнена операция ECS "обновить".
requester_email
string / обязательно
Электронная почта отправителя, связанная с информацией отслеживания сертификатов и получением уведомлений о доставке и истечении срока действия сертификата.
requester_name
string / обязательно
Имя отправителя, связанное с информацией отслеживания сертификата.
requester_phone
string / обязательно
Номер телефона отправителя, связанный с информацией отслеживания сертификата.
subject_alt_name
list / элементы=string
Идентификаторы альтернативных имён субъекта в виде массива значений (применимо к cert_type со значением STANDARD_SSL, ADVANTAGE_SSL, UC_SSL, EV_SSL, WILDCARD_SSL, PRIVATE_SSL, и PD_SSL).
Если вы запрашиваете новый SSL-сертификат и передаёте параметр subject_alt_name, любые имена SAN в CSR игнорируются. Если параметр subjectAltName не передан, используются имена SAN в CSR.
См. request_type, чтобы узнать больше об именах SAN во время перевыпуска и обновления.
В случае сертификатов типа STANDARD_SSL сертификатов, если CN сертификата — <домен>.<доменная зона>, принимается только значение www.<домен>.<доменная зона>. Если CN сертификата — www.<домен>.<доменная зона>, принимается только значение <домен>.<доменная зона>.
tracking_id
integer
Идентификатор отслеживания сертификата для повторного выпуска или продления.
tracking_id недействителен, если request_type=new или request_type=validate_only.
Если сертификат присутствует в path и это сертификат ECS, tracking_id будет проигнорирован.
Если сертификат отсутствует в path или если он от другого поставщика, сертификат, представленный tracking_id, будет продлён или повторно выпущен и сохранён в path.
Это может быть использовано, когда известный сертификат отсутствует на сервере, но вы хотите продлить или повторно выпустить его для управления playbook ansible. Например, если вы укажете request_type=renew, tracking_id выпущенного сертификата и path к файлу, которого нет, первая запуск задачи загрузит сертификат, указанный по tracking_id (если он всё ещё действителен). Будущие запуски задачи (применимо - см. force и remaining_days) обновят сертификат, теперь присутствующий в path.
tracking_info
string
Свободный отслеживающий идентификатор, который необходимо прикрепить к записи для сертификата.

Примечания

Примечание

  • path должен быть указан как место сохранения сертификата.

См. также

См. также

community.crypto.openssl_privatekey

Может использоваться для создания закрытых ключей (как для сертификатов, так и для учётных записей).

community.crypto.openssl_csr

Может использоваться для создания запроса на подпись сертификата (CSR).

Примеры

- name: Request a new certificate from Entrust with bare minimum parameters.
        Will request a new certificate if current one is valid but within 30
        days of expiry. If replacing an existing file in path, will back it up.
  community.crypto.ecs_certificate:
    backup: true
    path: /etc/ssl/crt/ansible.com.crt
    full_chain_path: /etc/ssl/crt/ansible.com.chain.crt
    csr: /etc/ssl/csr/ansible.com.csr
    cert_type: EV_SSL
    requester_name: Jo Doe
    requester_email: jdoe@ansible.com
    requester_phone: 555-555-5555
    entrust_api_user: apiusername
    entrust_api_key: a^lv*32!cd9LnT
    entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
    entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key

- name: If there is no certificate present in path, request a new certificate
        of type EV_SSL. Otherwise, if there is an Entrust managed certificate
        in path and it is within 63 days of expiration, request a renew of that
        certificate.
  community.crypto.ecs_certificate:
    path: /etc/ssl/crt/ansible.com.crt
    csr: /etc/ssl/csr/ansible.com.csr
    cert_type: EV_SSL
    cert_expiry: '2020-08-20'
    request_type: renew
    remaining_days: 63
    requester_name: Jo Doe
    requester_email: jdoe@ansible.com
    requester_phone: 555-555-5555
    entrust_api_user: apiusername
    entrust_api_key: a^lv*32!cd9LnT
    entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
    entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key

- name: If there is no certificate present in path, download certificate
        specified by tracking_id if it is still valid. Otherwise, if the
        certificate is within 79 days of expiration, request a renew of that
        certificate and save it in path. This can be used to "migrate" a
        certificate to be Ansible managed.
  community.crypto.ecs_certificate:
    path: /etc/ssl/crt/ansible.com.crt
    csr: /etc/ssl/csr/ansible.com.csr
    tracking_id: 2378915
    request_type: renew
    remaining_days: 79
    entrust_api_user: apiusername
    entrust_api_key: a^lv*32!cd9LnT
    entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
    entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key

- name: Force a reissue of the certificate specified by tracking_id.
  community.crypto.ecs_certificate:
    path: /etc/ssl/crt/ansible.com.crt
    force: true
    tracking_id: 2378915
    request_type: reissue
    entrust_api_user: apiusername
    entrust_api_key: a^lv*32!cd9LnT
    entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
    entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key

- name: Request a new certificate with an alternative client. Note that the
        issued certificate will have it's Subject Distinguished Name use the
        organization details associated with that client, rather than what is
        in the CSR.
  community.crypto.ecs_certificate:
    path: /etc/ssl/crt/ansible.com.crt
    csr: /etc/ssl/csr/ansible.com.csr
    client_id: 2
    requester_name: Jo Doe
    requester_email: jdoe@ansible.com
    requester_phone: 555-555-5555
    entrust_api_user: apiusername
    entrust_api_key: a^lv*32!cd9LnT
    entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
    entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key

- name: Request a new certificate with a number of CSR parameters overridden
        and tracking information
  community.crypto.ecs_certificate:
    path: /etc/ssl/crt/ansible.com.crt
    full_chain_path: /etc/ssl/crt/ansible.com.chain.crt
    csr: /etc/ssl/csr/ansible.com.csr
    subject_alt_name:
      - ansible.testcertificates.com
      - www.testcertificates.com
    eku: SERVER_AND_CLIENT_AUTH
    ct_log: true
    org: Test Organization Inc.
    ou:
      - Administration
    tracking_info: "Submitted via Ansible"
    additional_emails:
      - itsupport@testcertificates.com
      - jsmith@ansible.com
    custom_fields:
      text1: Admin
      text2: Invoice 25
      number1: 342
      date1: '2018-01-01'
      email1: sales@ansible.testcertificates.com
      dropdown1: red
    cert_expiry: '2020-08-15'
    requester_name: Jo Doe
    requester_email: jdoe@ansible.com
    requester_phone: 555-555-5555
    entrust_api_user: apiusername
    entrust_api_key: a^lv*32!cd9LnT
    entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
    entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key

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

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

Ключ Возвращённое Описание
backup_file
string
изменён и если backup true
Имя файла резервной копии, созданного для сертификата.

Пример:
/path/to/www.ansible.com.crt.2019-03-09@11:22~
backup_full_chain_file
string
изменён и если backup true и full_chain_path задан.
Имя файла резервной копии, созданного для цепочки сертификатов.

Пример:
/path/to/ca.chain.crt.2019-03-09@11:22~
cert_days
integer
успешно
Количество дней, в течение которых сертификат остаётся действительным.

Пример:
253
cert_details
dictionary
успешно
Полный ответ JSON из вызова Get Certificate API ECS.
Хотя содержимое ответа гарантированно будет совместимо с будущими выпусками API ECS, Entrust рекомендует не создавать playbook, выполняющие действия на основе содержимого этого поля. Однако оно может быть полезно для отладки, ведения журналов или аудита.

cert_status
string
успешно
Статус сертификата в ECS.
Текущие возможные значения (которые могут быть расширены в будущем): ACTIVE, APPROVED, DEACTIVATED, DECLINED, EXPIRED, NA, PENDING, PENDING_QUORUM, READY, REISSUED, REISSUING, RENEWED, RENEWING, REVOKED, SUSPENDED

Пример:
ACTIVE
filename
string
изменён или успешно
Путь назначения для сгенерированного сертификата.

Пример:
/etc/ssl/crt/www.ansible.com.crt
serial_number
integer
успешно
Серийный номер выпущенного сертификата.

Пример:
1235262234164342
tracking_id
integer
успешно
Идентификатор отслеживания для ссылки и отслеживания сертификата в ECS.

Пример:
380079


Авторы

  • Chris Trufan (@ctrufan)

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

Spec-Zone.ru

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