self_signed_cert
Самоподписанный сертификат
Этот роль Ansible позволяет генерировать самоподписанные сертификаты. В результате будет сгенерировано 3 PEM-сертификата с ключами: CA, клиент и сервер. Кроме того, будет сгенерировано 2 PFX-сертификата для клиента и сервера.
Общие переменные
Директория сертификатов
self_signed_cert_dir: /etc/certs/
Это директория, в которой будут сохранены сертификаты.
URL для загрузки cfssl и cfssl_json
self_signed_cert_cfssl_url: https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
self_signed_cert_cfssl_json_url: https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
Вы можете указать, какую версию cfssl и cfssl_tool вы хотите загрузить.
Профили
self_signed_cert_profiles:
- name: server
expirity: 8760h
usages:
- signing
- key encipherment
- server auth
- client auth
cfssl поддерживает несколько профилей. Каждый профиль имеет уникальное имя. Дата истечения срока действия определяет, когда сертификат, созданный с помощью этого профиля, истечет. Назначение сертификата определяет его использование. Допустимые значения:
- Основные назначения: подпись, цифровая подпись, обязательство по содержимому, шифрование ключей, соглашение ключей, шифрование данных, подпись сертификата, подпись CRL, только шифрование, только расшифровка,
- Дополнительные назначения: любое, аутентификация сервера, аутентификация клиента, подписание кода, защита электронной почты, S/MIME, IPSec конечная система, IPSec туннель, IPSec пользователь, временная метка, подпись OCSP, Microsoft SGC, Netscape SGC
Удостоверяющий центр
self_signed_cert_ca_certs:
- name: example-ca
cn: example.com
key_algo: rsa
key_size: 2048
country: EU
location: Internet
organisation: Example
organisation_unit: IT
state: internet
trust_ca_cert: false
Алгоритм ключа удостоверяющего центра key_algo
может принимать одно из значений: ECDSA256, RSA. trust_ca_cert
будет добавлять CA-сертификаты в доверенные корневые сертификаты.
Сертификаты
self_signed_cert_certs:
- name: server
profile: server
ca_name: example-ca
export_to_pfx: true
cn: example.com
hosts:
- example.com
- www.example.com
key_algo: rsa
key_size: 2048
country: EU
location: Internet
organisation: Example
organisation_unit: IT
state: internet
Пример Playbook
- hosts: localhost
become: yes
roles:
- self-signed-cert
vars:
self_signed_cert_cfssl_url: https://github.com/cloudflare/cfssl/releases/download/v1.4.1/cfssl_1.4.1_linux_amd64
self_signed_cert_cfssl_json_url: https://github.com/cloudflare/cfssl/releases/download/v1.4.1/cfssljson_1.4.1_linux_amd64
self_signed_cert_dir: /etc/certs/
self_signed_cert_profiles:
- name: server
expirity: 8760h
usages:
- signing
- key encipherment
- server auth
- client auth
- name: client
expirity: 8760h
usages:
- signing
- key encipherment
- client auth
self_signed_cert_ca_certs:
- name: example-ca
cn: example.com
key_algo: rsa
key_size: 2048
country: EU
location: Internet
organisation: Example
organisation_unit: IT
state: internet
trust_ca_cert: false
self_signed_cert_certs:
- name: server
profile: server
ca_name: example-ca
export_to_pfx: true
cn: example.com
hosts:
- example.com
- www.example.com
key_algo: rsa
key_size: 2048
country: EU
location: Internet
organisation: Example
organisation_unit: IT
state: internet
- name: client
profile: client
ca_name: example-ca
export_to_pfx: true
cn: example.com
hosts:
- example.com
- www.example.com
key_algo: rsa
key_size: 2048
country: EU
location: Internet
organisation: Example
organisation_unit: IT
state: internet
This ansible role allows generating a self-signed certificates.
ansible-galaxy install pogosoftware/ansible-role-self-signed-cert