x509-certificate

ansible-role-x509-certificate

Управляет секретными и/или публичными ключами X509. Роль предполагает, что у вас уже есть действующий секретный ключ или подписанный публичный ключ. Роль не создает и не управляет CSR.

Требования

Нет

Переменные роли

Переменная Описание Значение по умолчанию
x509_certificate_dir путь к каталогу для хранения сертификатов и ключей {{ __x509_certificate_dir }}
x509_certificate_packages список пакетов для установки для управления ключами, т. е. для проверки сертификатов {{ __x509_certificate_packages }}
x509_certificate_default_owner владелец ключей по умолчанию {{ __x509_certificate_default_owner }}
x509_certificate_default_group группа ключей по умолчанию {{ __x509_certificate_default_group }}
x509_certificate_additional_packages список дополнительных пакетов для установки. Они устанавливаются перед управлением сертификатами и ключами. Полезно, если владелец файлов не существует, но будет создан другой ролью или задачей позже. Использование этой переменной требует осторожности. Когда пакет установлен этой ролью, задачи установки пакета после этой роли не будут запущены, что может вызвать неожиданные последствия. В этом случае создавайте пользователя и группу сами []
x509_certificate_validate_command команда для проверки сертификата и ключей. команда должна быть определена в x509_certificate_validate_command_secret и x509_certificate_validate_command_public как ключ openssl
x509_certificate_validate_command_secret словарь команды для проверки секретного ключа (см. ниже) {"openssl"=>"openssl rsa -check -in %s"}
x509_certificate_validate_command_public словарь команды для проверки публичного ключа (см. ниже) {"openssl"=>"openssl x509 -noout -in %s"}
x509_certificate ключи для управления (см. ниже) []
x509_certificate_debug_log включить запись конфиденциальных данных во время выполнения, если yes. Обратите внимание, что лог будет отображать значение x509_certificate, включая секретный ключ, если yes no

x509_certificate_validate_command_secret

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

x509_certificate_validate_command_public

Эта переменная является словарем. Ключ - это имя команды, а значение используется для проверки файлов публичного сертификата при создании.

x509_certificate

Эта переменная - это список словарей. Ключи и значения объясняются ниже.

Ключ Значение Обязательно?
name Описательное имя ключей да
state одно из present или absent. роль создает ключ при present и удаляет ключ при absent да
public словарь, представляющий публичный сертификат нет
secret словарь, представляющий секретный ключ нет

public и secret в x509_certificate

public и secret должны содержать словарь. Словарь объясняется ниже.

Ключ Значение Обязательно?
path путь к файлу. если не определен, файл будет создан в x509_certificate_dir с именем $name.pem нет
owner владелец файла (по умолчанию x509_certificate_default_owner) нет
group группа файла (по умолчанию x509_certificate_default_group) нет
mode разрешение файла (по умолчанию 0444, когда файл - публичный сертификат, 0400, когда файл - секретный ключ) нет
key содержимое ключа нет

Debian

Переменная Значение по умолчанию
__x509_certificate_dir /etc/ssl
__x509_certificate_packages ["openssl"]
__x509_certificate_default_owner root
__x509_certificate_default_group root

FreeBSD

Переменная Значение по умолчанию
__x509_certificate_dir /usr/local/etc/ssl
__x509_certificate_packages []
__x509_certificate_default_owner root
__x509_certificate_default_group wheel

OpenBSD

Переменная Значение по умолчанию
__x509_certificate_dir /etc/ssl
__x509_certificate_packages []
__x509_certificate_default_owner root
__x509_certificate_default_group wheel

RedHat

Переменная Значение по умолчанию
__x509_certificate_dir /etc/ssl
__x509_certificate_packages ["openssl"]
__x509_certificate_default_owner root
__x509_certificate_default_group root

Зависимости

Нет

Пример плейбука

- hosts: localhost
  roles:
    - ansible-role-x509-certificate
  vars:
    # XXX НИКОГДА не устанавливайте эту переменную в `yes`, если вы не уверены, что делаете.
    x509_certificate_debug_log: yes

    x509_certificate_additional_packages:
      - quagga
    x509_certificate:
      - name: foo
        state: present
        public:
          key: |
            -----BEGIN CERTIFICATE-----
            MIIDOjCCAiICCQDaGChPypIR9jANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJB
            VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
            cyBQdHkgTHRkMRgwFgYDVQQDDA9mb28uZXhhbXBsZS5vcmcwHhcNMTcwNzE4MDUx
            OTAxWhcNMTcwODE3MDUxOTAxWjBfMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29t
            ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRgwFgYD
            VQQDDA9mb28uZXhhbXBsZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
            AoIBAQDZ9nd1isoGGeH4OFbQ6mpzlldo428LqEYSH4G7fhzLMKdYsIqkMRVl1J3s
            lXtsMQUUP3dcpnwFwKGzUvuImLHx8McycJKwOp96+5XD4QAoTKtbl59ZRFb3zIjk
            Owd94Wp1lWvptz+vFTZ1Hr+pEYZUFBkrvGtV9BoGRn87OrX/3JI9eThEpksr6bFz
            QvcGPrGXWShDJV/hTkWxwRicMMVZVSG6niPusYz2wucSsitPXIrqXPEBKL1J8Ipl
            8dirQLsH02ZZKcxGctEjlVgnpt6EI+VL6fs5P6A45oJqWmfym+uKztXBXCx+aP7b
            YUHwn+HV4qzZQld80PSTk6SS3hMXAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAKgf
            x3K9GHDK99vsWN8Ej10kwhMlBWBGuM0wkhY0fbxJ0gW3sflK8z42xMc2dhizoYsY
            sLfN0aylpN/omocl+XcYugLHnW2q8QdsavWYKXqUN0neIMr/V6d1zXqxbn/VKdGr
            CD4rJwewBattCIL4+S2z+PKr9oCrxjN4i3nujPhKv/yijhrtV+USw1VwuFqsYaqx
            iScC13F0nGIJiUVs9bbBwBKn1c6GWUHHiFCZY9VJ15SzilWAY/TULsRsHR53L+FY
            mGfQZBL1nwloDMJcgBFKKbG01tdmrpTTP3dTNL4u25+Ns4nrnorc9+Y/wtPYZ9fs
            7IVZsbStnhJrawX31DQ=
            -----END CERTIFICATE-----
      - name: bar
        state: present
        public:
          path: /usr/local/etc/ssl/bar/bar.pub
          owner: "{% if ansible_os_family == 'FreeBSD' or ansible_os_family == 'OpenBSD' %}www{% elif ansible_os_family == 'RedHat' %}ftp{% else %}www-data{% endif %}"
          group: "{% if ansible_os_family == 'FreeBSD' or ansible_os_family == 'OpenBSD' %}www{% elif ansible_os_family == 'RedHat' %}ftp{% else %}www-data{% endif %}"
          mode: "0644"
          key: |
            -----BEGIN CERTIFICATE-----
            MIIDOjCCAiICCQDaGChPypIR9jANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJB
            VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
            cyBQdHkgTHRkMRgwFgYDVQQDDA9mb28uZXhhbXBsZS5vcmcwHhcNMTcwNzE4MDUx
            OTAxWhcNMTcwODE3MDUxOTAxWjBfMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29t
            ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRgwFgYD
            VQQDDA9mb28uZXhhbXBsZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
            AoIBAQDZ9nd1isoGGeH4OFbQ6mpzlldo428LqEYSH4G7fhzLMKdYsIqkMRVl1J3s
            lXtsMQUUP3dcpnwFwKGzUvuImLHx8McycJKwOp96+5XD4QAoTKtbl59ZRFb3zIjk
            Owd94Wp1lWvptz+vFTZ1Hr+pEYZUFBkrvGtV9BoGRn87OrX/3JI9eThEpksr6bFz
            QvcGPrGXWShDJV/hTkWxwRicMMVZVSG6niPusYz2wucSsitPXIrqXPEBKL1J8Ipl
            8dirQLsH02ZZKcxGctEjlVgnpt6EI+VL6fs5P6A45oJqWmfym+uKztXBXCx+aP7b
            YUHwn+HV4qzZQld80PSTk6SS3hMXAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAKgf
            x3K9GHDK99vsWN8Ej10kwhMlBWBGuM0wkhY0fbxJ0gW3sflK8z42xMc2dhizoYsY
            sLfN0aylpN/omocl+XcYugLHnW2q8QdsavWYKXqUN0neIMr/V6d1zXqxbn/VKdGr
            CD4rJwewBattCIL4+S2z+PKr9oCrxjN4i3nujPhKv/yijhrtV+USw1VwuFqsYaqx
            iScC13F0nGIJiUVs9bbBwBKn1c6GWUHHiFCZY9VJ15SzilWAY/TULsRsHR53L+FY
            mGfQZBL1nwloDMJcgBFKKbG01tdmrpTTP3dTNL4u25+Ns4nrnorc9+Y/wtPYZ9fs
            7IVZsbStnhJrawX31DQ=
            -----END CERTIFICATE-----
        secret:
          path: /usr/local/etc/ssl/bar/bar.key
          owner: "{% if ansible_os_family == 'FreeBSD' or ansible_os_family == 'OpenBSD' %}www{% elif ansible_os_family == 'RedHat' %}ftp{% else %}www-data{% endif %}"
          group: "{% if ansible_os_family == 'FreeBSD' or ansible_os_family == 'OpenBSD' %}www{% elif ansible_os_family == 'RedHat' %}ftp{% else %}www-data{% endif %}"
          key: |
            -----BEGIN RSA PRIVATE KEY-----
            MIIEowIBAAKCAQEA2fZ3dYrKBhnh+DhW0Opqc5ZXaONvC6hGEh+Bu34cyzCnWLCK
            pDEVZdSd7JV7bDEFFD93XKZ8BcChs1L7iJix8fDHMnCSsDqfevuVw+EAKEyrW5ef
            WURW98yI5DsHfeFqdZVr6bc/rxU2dR6/qRGGVBQZK7xrVfQaBkZ/Ozq1/9ySPXk4
            RKZLK+mxc0L3Bj6xl1koQyVf4U5FscEYnDDFWVUhup4j7rGM9sLnErIrT1yK6lzx
            ASi9SfCKZfHYq0C7B9NmWSnMRnLRI5VYJ6behCPlS+n7OT+gOOaCalpn8pvris7V
            wVwsfmj+22FB8J/h1eKs2UJXfND0k5Okkt4TFwIDAQABAoIBAHmXVOztj+X3amfe
            hg/ltZzlsb2BouEN7okNqoG9yLJRYgnH8o/GEfnMsozYlxG0BvFUtnGpLmbHH226
            TTfWdu5RM86fnjVRfsZMsy+ixUO2AaIG444Y4as7HuKzS2qd5ZXS1XB8GbrCSq7r
            iF/4tscQrzoG0poQorP9f9y60+z3R45OX3QMVZxP4ZzxXAulHGnECERjLHM5QzTX
            ALV9PHkTRNd1tm9FSJWWGNO5j4CGxFsPL1kdMyvrC7TkYiIiCQ/dd2CIfQyWwyKc
            8cHBKnzon0ugr0xlf2B0C7RTXrGAcuBC0yyaLuQTFkocUofgDIFghItH8O8xvvAG
            j8HYOwECgYEA9uMLtm2C8SiWFuafrF/pPWvhkBtEHA2g22M29CANrVv1jCEVMti/
            7r53fd328/nVxtashnSFz7a3l3s9d9pTR/rk/rNpVS2i7JGvCXXE3DeoD6Zf4utD
            MLEs2bI0KabdamIywc77CkVj9WUKd53tlcdcn7AsHwESU4Zjk08ie0kCgYEA4gIa
            R+a9jmKEk9l5Gn7jroxDJdI0gEfuA7It5hshEDcSvjF+Fs5+1tVgfBI1Mx4/0Eaj
            6E57Ln3WFKPJKuG0HwLNanZcqLFgiC/7ANbyKxfONPVrqC2TClImBhkQ74BLafZg
            yY8/N/g/5RIMpYvQ9snBRsah9G2cBfuPTHjku18CgYBHylPQk12dJJEoTZ2msSkQ
            jDtF/Te79JaO1PXY3S08+N2ZBtG0PGTrVoVGm3HBFif8rtXyLxXuBZKzQMnp/Rl0
            d9d43NDHTQLwSZidZpp88s4y5s1BHeom0Y5aK0CR0AzYb3+U7cv/+5eKdvwpNkos
            4JDleoQJ6/TZRt3TqxI6yQKBgA8sdPc+1psooh4LC8Zrnn2pjRiM9FloeuJkpBA+
            4glkqS17xSti0cE6si+iSVAVR9OD6p0+J6cHa8gW9vqaDK3IUmJDcBUjU4fRMNjt
            lXSvNHj5wTCZXrXirgraw/hQdL+4eucNZwEq+Z83hwHWUUFAammGDHmMol0Edqp7
            s1+hAoGBAKCGZpDqBHZ0gGLresidH5resn2DOvbnW1l6b3wgSDQnY8HZtTfAC9jH
            DZERGGX2hN9r7xahxZwnIguKQzBr6CTYBSWGvGYCHJKSLKn9Yb6OAJEN1epmXdlx
            kPF7nY8Cs8V8LYiuuDp9UMLRc90AmF87rqUrY5YP2zw6iNNvUBKs
            -----END RSA PRIVATE KEY-----

Лицензия

Copyright (c) 2017 Tomoyuki Sakurai <[email protected]>

Разрешение на использование, копирование, изменение и распространение этого программного обеспечения для любых
целей с или без платы предоставляется при условии, что вышеупомянутое
уведомление об авторских правах и это разрешение появляются во всех копиях.

ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", И АВТОР ОТКАЗЫВАЕТСЯ ОТ ВСЕХ ГАРАНТИЙ
НЕСУЩИХ ОТВЕТСТВЕННОСТЬ ЗА ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ВКЛЮЧАЯ ВСЕ ИМПЛИЦИТНЫЕ ГАРАНТИИ
ТОВАРНОГО КАЧЕСТВА И ПРИГОДНОСТИ. В НИКАКОМ СЛУЧАЕ АВТОР НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА
КАКИЕ-ЛИБО ОСОБЫЕ, ПРЯМЫЕ, НЕПОСРЕДСТВЕННЫЕ ИЛИ ПОСЛЕДУЮЩИЕ УБЫТКИ ИЛИ ЛЮБЫЕ УБЫТКИ
КАКИХ-ЛИБО ИЗДЕЛИЙ, ДАННЫХ ИЛИ ПРИБЫЛИ, БУДЬ ТО В ДЕЙСТВИИ ДОГОВОРА, НЕКОНКРЕТНОЙ БЕЗДЕЙСТВИЯ ИЛИ ДРУГОГО ДЕЙСТВИЯ, ВЫТЕКАЮЩИМ ИЗ ИЛИ В СВЯЗИ С ИСПОЛЬЗОВАНИЕМ ИЛИ ЭФФЕКТИВНОСТЬЮ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

Информация об авторе

Tomoyuki Sakurai tomoyukis@reallyenglish.com

Этот README был создан с помощью qansible

О проекте

Manages X509 public and secret keys

Установить
ansible-galaxy install reallyenglish/ansible-role-x509-certificate
Лицензия
isc
Загрузки
187
Владелец