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