nssdb

Ansible Роль: NSS Shared DB

Статус сборки

Устанавливает CA сертификаты в NSS Shared DB на Ubuntu или Debian, как это делает Google Chrome.

Требования

  • CA сертификат должен быть уже установлен на целевом хосте. Для этого вы можете использовать bdellegrazie.ca-certificates, так как он все равно нужен для curl и для PHP.

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

Доступные переменные перечислены ниже вместе с значениями по умолчанию (см. defaults/main.yml):

certutils_package_state: установлен

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

nssdb_users: []

Добавьте список имен учетных записей пользователей, для которых также должны управляться сертификаты, помимо системного /etc/pki/nssdb. Это необходимо, например, для Google Chrome, который открывает только nssdb пользователей :sob:

nssdb_certificates: []

Добавьте список сертификатов для установки в /etc/pki/nssdb с атрибутами name, path и trust (см. certutil -H -A для помощи по параметру -t trustargs), например, CT,c,c для доверия к сайтам с подписанием (как нужно Chrome) или CT,C,C для доверия к сайтам с подписанием, S/MIME (почтовые) сертификатам и подписыванию кода.

Организуйте ваше имя сертификата как общее имя сертификата - организация сертификата, чтобы Chrome мог красиво его отобразить.

nssdb_certificates:
  # Установить CA сертификат CAcert и доверять на сайтах, S/MIME и подписании кода.
  - name: CA Cert Signing Authority - Root CA
    path: /usr/local/share/ca-certificates/cacert.crt
    trust: CT,C,C
  # Установить корпоративный CA сертификат и доверять только на сайтах
  - name: Acme CA - Acme Corp
    path: /usr/local/share/ca-certificates/acme.crt
    trust: CT,c,c

Зависимости

Отсутствуют, но вы можете использовать bdellegrazie.ca-certificates для переноса сертификатов на целевой хост и установки их для curl, php и т.д.

Пример Playbook

- hosts: phpdevs

  pre_tasks:
    - name: Скачать CA Cert Signing Authority
      uri:
        url: 'http://www.cacert.org/certs/root.crt'
        return_content: true
      register: cacert_pem

  vars_files:
    - vars/main.yml
    
  roles:
    - bdellegrazie.ca-certificates
    - pixelart.nssdb
    

Внутри vars/main.yml:

ca_certificates_trusted:
  - { pem: "{{ cacert_pem.content }}", name: cacert }
  - { pem: "{{ lookup('file', 'files/ssl/acme-ca.pem') }}", name: acme }

nssdb_users: ['username']
nssdb_certificates:
  - name: CA Cert Signing Authority - Root CA
    path: '{{ ca_certificates_local_dir }}/cacert.crt'
    trust: CT,C,C
  - name: Acme CA - Acme Corp
    path: /usr/local/share/ca-certificates/acme.crt
    trust: CT,c,c

После выполнения playbook сертификаты будут установлены как в системный, так и в пользовательский nssdb, а также сконкатенированы в ca-certificates.crt для curl, php и т.д.

Код поведения

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

Лицензия

MIT, см. файл LICENSE.

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

Эта роль была создана в 2017 году pixelart GmbH.

О проекте

Install certificates into NSS Shared DB

Установить
ansible-galaxy install pixelart/ansible-role-nssdb
Лицензия
Unknown
Загрузки
5710
Владелец
pixelart is a digital agency based in Salzburg that has won awards throughout Europe. We employ 60 specialists to provide a full range of digital services.