Как создавать самоподписанные сертификаты
Коллекция 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