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.
ansible-galaxy install pixelart/ansible-role-nssdb