Spec-Zone.ru › Ansible

Как создавать самоподписанные сертификаты

Коллекция community.crypto предлагает несколько модулей для создания закрытых ключей, запросов на подпись сертификатов и сертификатов. В этом руководстве показано, как создавать самоподписанные сертификаты.

Для создания сертификата любого типа всегда нужно начать с закрытого ключа. Для создания закрытого ключа можно использовать модуль community.crypto.openssl_privatekey. Если указать только path, будут использоваться параметры по умолчанию. В результате будет создан закрытый ключ RSA длиной 4096 бит:

- name: Create private key (RSA, 4096 bits)
  community.crypto.openssl_privatekey:
    path: /path/to/certificate.key

Можно указать type, чтобы выбрать другой тип ключа, size, чтобы выбрать другой размер ключа (доступно только для ключей RSA и DSA), или passphrase, если ключ нужно защитить паролем:

- name: Create private key (X25519) with password protection
  community.crypto.openssl_privatekey:
    path: /path/to/certificate.key
    type: X25519
    passphrase: changeme

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

- name: Create simple self-signed certificate
  community.crypto.x509_certificate:
    path: /path/to/certificate.pem
    privatekey_path: /path/to/certificate.key
    provider: selfsigned

(Если для закрытого ключа использовался passphrase, необходимо указать privatekey_passphrase.)

С помощью selfsigned_not_after можно указать срок действия сертификата (по умолчанию — примерно 10 лет), а с помощью selfsigned_not_before — дату начала его действия (по умолчанию — текущая дата).

Чтобы задать дополнительные свойства сертификата, например субъект, альтернативные имена субъекта (SAN), назначение ключа, ограничения имён и т. д., сначала нужно создать запрос на подпись сертификата (CSR) и передать его модулю community.crypto.x509_certificate. Если файл CSR не нужен, можно использовать модуль community.crypto.openssl_csr_pipe, как показано в примере ниже. (Чтобы сохранить запрос на диск, вместо него используйте модуль community.crypto.openssl_csr.)

- name: Create certificate signing request (CSR) for self-signed certificate
  community.crypto.openssl_csr_pipe:
    privatekey_path: /path/to/certificate.key
    common_name: ansible.com
    organization_name: Ansible, Inc.
    subject_alt_name:
      - "DNS:ansible.com"
      - "DNS:www.ansible.com"
      - "DNS:docs.ansible.com"
  register: csr

- name: Create self-signed certificate from CSR
  community.crypto.x509_certificate:
    path: /path/to/certificate.pem
    csr_content: "{{ csr.csr }}"
    privatekey_path: /path/to/certificate.key
    provider: selfsigned

© 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/docsite/guide_selfsigned.html

Spec-Zone.ru

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