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-certificatespour 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