trombik.cfssl

trombik.cfssl

Rôle ansible pour cfssl. Le serveur API (cfssl serve) est supporté.

Pour tous les utilisateurs

Comme peu de distributions prennent en charge le serveur API dans leurs paquets, les variables de rôle cfssl_db_* peuvent changer.

Pour exécuter cfssl en tant que serveur, votre paquet de distribution doit prévoir un script de démarrage et d'autres modifications au paquet. À ma connaissance, celui d'Ubuntu ne le fait pas. Ainsi, la prise en charge du serveur API n'est pas mise en œuvre pour les variantes Debian.

Exigences

Aucune

Variables de rôle

Variable Description Par défaut
cfssl_user nom d'utilisateur de cfssl {{ __cfssl_user }}
cfssl_group nom du groupe de cfssl {{ __cfssl_group }}
cfssl_package nom du paquet de cfssl {{ __cfssl_package }}
cfssl_extra_packages liste des paquets supplémentaires à installer []
cfssl_ca_root_dir chemin vers le répertoire CA racine {{ __cfssl_ca_root_dir }}
cfssl_ca_secret_key_file chemin vers le fichier clé secrète racine {{ cfssl_ca_root_dir }}/ca-key.pem
cfssl_ca_public_key_file chemin vers le fichier clé publique racine {{ cfssl_ca_root_dir }}/ca.pem
cfssl_ca_csr_file chemin vers le fichier JSON CSR de la CA racine {{ cfssl_ca_root_dir }}/ca.csr
cfssl_ca_csr_config contenu du fichier de configuration cfssl_ca_csr_config_file {}
cfssl_ca_config_file chemin vers le fichier de configuration de la CA en JSON {{ cfssl_ca_root_dir }}/ca-config.json
cfssl_ca_csr_config_file chemin vers le fichier de configuration CSR de la CA en JSON "{{ cfssl_ca_root_dir }}/ca-csr.json"
cfssl_ca_config contenu du fichier de configuration de la CA {}
cfssl_certs_dir chemin vers le répertoire pour garder les certificats signés {{ cfssl_ca_root_dir }}/certs
cfssl_service nom du service de cfssl cfssl
cfssl_db_config Configuration de la base de données en YAML. Voir certdb/README.nd dans le code source pour plus de détails. {}
cfssl_db_type Le type de base de données. La valeur supportée est uniquement sqlite. Si précisé, le rôle exécute des tâches spécifiques pour la base de données et démarre cfssl en tant que serveur. ""
cfssl_db_dir Chemin vers le répertoire de la base de données {{ __cfssl_db_dir }}
cfssl_db_sqlite_bin Nom du fichier de commande sqlite sqlite3
cfssl_db_sqlite_database_file Chemin vers le fichier de base de données sqlite {{ cfssl_db_dir }}/certdb.db
cfssl_db_sqlite_sql_file_dir Chemin vers un répertoire où les fichiers SQL sont stockés. {{ __cfssl_db_sqlite_sql_file_dir }}
cfssl_db_migration_dir Chemin vers le répertoire de migration de la base de données {{ cfssl_ca_root_dir }}/goose/{{ cfssl_db_type }}
cfssl_db_migration_config Configuration pour la migration de la base de données {}
cfssl_db_migration_environment Environnement pour la migration de la base de données development
cfssl_flags Options supplémentaires pour le script de démarrage ""
cfssl_certs liste des certificats à signer (voir ci-dessous) ""

cfssl_certs

Ceci est une liste de dictionnaires. Un élément représente un CSR.

Clé Description Obligatoire ?
name nom de fichier relatif depuis cfssl_certs_dir oui
SAN liste des noms alternatifs pour le sujet non
profile nom du profil à utiliser lors de la signature oui
json contenu du fichier JSON de demande au format YAML oui
owner Nom d'utilisateur Unix du propriétaire du fichier de clé privée (par défaut cfssl_user) non

Inclusion de trombik.cfssl

Vous pouvez inclure le rôle dans vos tâches ou rôles. Utilisez vars pour définir des variables de rôle spécifiques par vars.

- name: Inclure le rôle trombik.cfssl
  include_role:
    name: trombik.cfssl
  vars:
    cfssl_extra_packages:
      - zsh

Cependant, lorsque vous souhaitez passer une seule variable qui inclut les variables de rôle, vous devez passer votre variable à une variable de pont spéciale, cfssl_vars.

- name: Inclure le rôle trombik.cfssl
  include_role:
    name: trombik.cfssl
  vars:
    cfssl_vars: "{{ my_variable }}"

L'exemple suivant NE fonctionne PAS :

- name: Inclure le rôle trombik.cfssl
  include_role:
    name: trombik.cfssl
  vars: "{{ my_variable }}"

voir tests/serverspec/intermediate.yml, qui inclut le rôle plusieurs fois pour créer des CAs intermédiaires.

Debian

Variable Par défaut
__cfssl_user cfssl
__cfssl_group cfssl
__cfssl_package golang-cfssl
__cfssl_ca_root_dir /etc/cfssl
__cfssl_db_dir /var/lib/cfssl
__cfssl_db_sqlite_sql_file_dir ""

FreeBSD

Variable Par défaut
__cfssl_user cfssl
__cfssl_group cfssl
__cfssl_package security/cfssl
__cfssl_ca_root_dir /usr/local/etc/cfssl
__cfssl_db_dir /var/db/cfssl
__cfssl_db_sqlite_sql_file_dir /usr/local/share/cfssl/certdb/sqlite/migrations

OpenBSD

Variable Par défaut
__cfssl_user _cfssl
__cfssl_group _cfssl
__cfssl_package cfssl
__cfssl_ca_root_dir /etc/cfssl
__cfssl_db_dir /var/db/cfssl
__cfssl_db_sqlite_sql_file_dir /usr/local/share/cfssl/certdb/sqlite/migrations

Dépendances

Aucune

Exemple de Playbook

Cet exemple gère cfssl et signe quelques certificats.

Pour un exemple de serveur API, voir tests/serverspec/api.yml.

Pour un exemple de plusieurs CAs intermédiaires sous une CA racine, voir tests/serverspec/intermediate.yml.

---
- hosts: localhost
  roles:
    - role: ansible-role-cfssl
  vars:
    cfssl_certs:
      - name: agent1.example.com.json
        SAN: []
        profile: agent
        owner: nobody
        json:
          CN: agent1.example.com
          hosts:
            - ""
          key:
            algo: rsa
            size: 2048
      - name: backend-1.example.com.json
        SAN:
          - localhost
          - 127.0.0.1
          - 10.0.0.1
          - backend-1
        profile: backend
        json:
          CN: backend-1.example.com
          hosts:
            - ""
          key:
            algo: rsa
            size: 2048
      - name: backend-2.example.com.json
        SAN:
          - localhost
          - 127.0.0.1
          - 10.0.0.2
          - backend-2
        profile: backend
        json:
          CN: backend-2.example.com
          hosts:
            - ""
          key:
            algo: rsa
            size: 2048
      - name: backend-3.example.com.json
        SAN:
          - localhost
          - 127.0.0.1
          - 10.0.0.3
          - backend-3
        profile: backend
        json:
          CN: backend-3.example.com
          hosts:
            - ""
          key:
            algo: rsa
            size: 2048
    cfssl_ca_config:
      signing:
        default:
          expiry: 17520h
          usages:
            - signing
            - key encipherment
            - client auth
        profiles:
          backend:
            expiry: 4320h
            usages:
              - signing
              - key encipherment
              - server auth
          agent:
            expiry: 4320h
            usages:
              - signing
              - key encipherment
              - client auth

    cfssl_ca_csr_config:
      CN: Sensu Test CA
      key:
        algo: rsa
        size: 2048

Licence

Copyright (c) 2020 Tomoyuki Sakurai <[email protected]>

La permission d'utiliser, copier, modifier et distribuer ce logiciel pour toute
finalité, avec ou sans frais, est par la présente accordée, à condition que le
mention de copyright ci-dessus et cette mention de permission apparaissent dans toutes les copies.

LE LOGICIEL EST FOURNI "TEL QUEL" ET L'AUTEUR DÉCLINE TOUTE GARANTIE
CONCERNANT CE LOGICIEL, Y COMPRIS TOUTE GARANTIE IMPLICITE DE
QUALITÉ MARCHANDE ET D'ADAPTABILITÉ. EN AUCUN CAS, L'AUTEUR NE SAURAIT ÊTRE TENU RESPONSABLE DE
TOUS DÉGÂTS SPÉCIAUX, DIRECTS, INDIRECTS OU CONSÉCUTIFS OU DE TOUS DÉGÂTS
QUELS QU'ILS SOIENT RÉSULTANT DE LA PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS, QUE CE SOIT EN
RAISON D'UN CONTRAT, D'UNE NÉGLIGENCE OU D'AUTRES ACTES ILLEGAUX, NÉCESSITAIRE
À L'UTILISATION OU À LA PERFORMANCE DE CE LOGICIEL.

Informations sur l'auteur

Tomoyuki Sakurai y@trombik.org

Ce README a été créé par qansible

À propos du projet

ansible role for cfssl

Installer
ansible-galaxy install trombik.cfssl
Licence
isc
Téléchargements
1.1k
Propriétaire
PGP finger print: 03EB 3D97 5E04 9B0C AB21 93A2 D693 42A9 EFBC 3577 Makerspace and Coliving in Siem Reap, Cambodia: http://info.mkrsgh.org/