pixelart.nssdb
Rol de Ansible: NSS DB Compartida
Instala certificados CA en la NSS DB Compartida en Ubuntu o Debian, como lo utiliza Google Chrome.
Requisitos
- El certificado CA ya debe estar instalado en el host de destino. Puedes usar
bdellegrazie.ca-certificates
para eso, ya que todavía lo necesitas para curl y para PHP.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
):
certutils_package_state: installed
Por defecto, se establece en 'installed'. Puedes reemplazar esta variable por 'latest' si deseas actualizar o si has cambiado a un repositorio diferente.
nssdb_users: []
Agrega una lista de nombres de cuentas de usuario para los que también deben gestionarse los certificados, además del /etc/pki/nssdb
de todo el sistema. Esto es necesario, por ejemplo, para Google Chrome, que solo abre la nssdb del usuario. :sob:
nssdb_certificates: []
Agrega una lista de certificados para instalar en /etc/pki/nssdb
con atributos de name
, path
y trust
(Consulta certutil -H -A
para obtener ayuda sobre el parámetro -t trustargs
), por ejemplo, CT,c,c
para confianza en sitios web de firma (como lo necesita Chrome), o CT,C,C
para confiar en sitios web de firma, certificados S/MIME (correo) y firma de código.
Organiza tu nombre de certificado como nombre común del certificado - organización del certificado
para que Chrome lo muestre de forma ordenada.
nssdb_certificates:
# Instalar la CA de CAcert y confiar en sitios web, S/MIME y firma de código.
- name: CA Cert Signing Authority - Root CA
path: /usr/local/share/ca-certificates/cacert.crt
trust: CT,C,C
# Instalar CA corporativa y confiar solo en sitios web
- name: Acme CA - Acme Corp
path: /usr/local/share/ca-certificates/acme.crt
trust: CT,c,c
Dependencias
Ninguna, pero puedes usar bdellegrazie.ca-certificates
para transferir los certificados al host de destino e instalarlos para curl, php y demás.
Ejemplo de Playbook
- hosts: phpdevs
pre_tasks:
- name: Descargar 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
Dentro 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: ['nombredeusuario']
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
Después de que se ejecute el playbook, los certificados se instalarán en la nssdb del sistema y de los usuarios, y también se concatenarán en el ca-certificates.crt
para curl, php y demás.
Código de Conducta
Ten en cuenta que este proyecto se publica con un Código de Conducta para Contribuidores. Al participar en este proyecto, aceptas cumplir con sus términos.
Licencia
MIT, consulta el archivo LICENSE.
Información del Autor
Este rol fue creado en 2017 por pixelart GmbH.
ansible-galaxy install pixelart.nssdb