pixelart.nssdb
Rôle Ansible : NSS Shared DB
Installe des certificats CA dans la base de données partagée NSS sur Ubuntu ou Debian, comme le fait Google Chrome.
Exigences
- Le certificat CA doit déjà être installé sur l'hôte cible. Vous pouvez utiliser
bdellegrazie.ca-certificates
pour cela, car vous en avez encore besoin pour curl et PHP.
Variables du rôle
Les variables disponibles sont énumérées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
) :
certutils_package_state: installé
Par défaut, cela est réglé sur 'installé'. Vous pouvez remplacer cette variable par 'latest' si vous souhaitez mettre à niveau ou si vous êtes passé à un autre dépôt.
nssdb_users: []
Ajoutez une liste de noms de comptes utilisateurs pour lesquels les certificats doivent également être gérés, en plus de la base de données système /etc/pki/nssdb
. Cela est nécessaire, par exemple pour Google Chrome qui n'ouvre que la base de données nssdb des utilisateurs :sob:
nssdb_certificates: []
Ajoutez une liste de certificats à installer dans /etc/pki/nssdb
avec des attributs de name
, path
et trust
(voir certutil -H -A
pour l'aide du paramètre -t trustargs
), par exemple CT,c,c
pour la confiance dans les sites web signés (comme cela est nécessaire pour Chrome), ou CT,C,C
pour la confiance dans les sites web signés, les certificats S/MIME (mail) et la signature de code.
Organisez votre nom de certificat sous la forme nom commun du certificat - organisation du certificat
afin que Chrome puisse l'afficher correctement.
nssdb_certificates:
# Installe CAcert CA et fait confiance aux sites web, S/MIME et signature de code.
- name: CA Cert Signing Authority - Root CA
path: /usr/local/share/ca-certificates/cacert.crt
trust: CT,C,C
# Installe CA d'entreprise et fait confiance uniquement aux sites web
- name: Acme CA - Acme Corp
path: /usr/local/share/ca-certificates/acme.crt
trust: CT,c,c
Dépendances
Aucune, mais vous pouvez utiliser bdellegrazie.ca-certificates
pour transférer les certificats sur l'hôte cible et les installer également pour curl, php, etc.
Exemple de Playbook
- hosts: phpdevs
pre_tasks:
- name: Télécharger 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
À l'intérieur de vars/main.yml
:
ca_certificates_trusted:
- { pem: "{{ cacert_pem.content }}", name: cacert }
- { pem: "{{ lookup('file', 'files/ssl/acme-ca.pem') }}", name: acme }
nssdb_users: ['nom_utilisateur']
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
Après l'exécution du playbook, les certificats sont installés dans la nssdb systémique et celle des utilisateurs, et sont également concaténés dans le ca-certificates.crt
pour curl, php, etc.
Code de conduite
Veuillez noter que ce projet est publié avec un Code de conduite des contributeurs. En participant à ce projet, vous acceptez de respecter ses termes.
Licence
MIT, voir le fichier LICENSE.
Informations sur l'auteur
Ce rôle a été créé en 2017 par pixelart GmbH.
ansible-galaxy install pixelart.nssdb