trombik.cfssl

trombik.cfssl

ansible Rolle für cfssl. Der API-Server (cfssl serve) wird unterstützt.

Für alle Benutzer

Da nur wenige Distributionen den API-Server in ihren Paketen unterstützen, können die Rollenvorlagen cfssl_db_* Änderungen unterliegen.

Um cfssl als Server auszuführen, muss Ihr Distributionspaket ein Startskript und andere Anpassungen am Paket bereitstellen. Soweit ich weiß, ist das bei Ubuntu nicht der Fall. Daher ist die Unterstützung des API-Servers für Debian-Varianten nicht implementiert.

Anforderungen

Keine

Rollenvorlagen

Variable Beschreibung Standard
cfssl_user Benutzername von cfssl {{ __cfssl_user }}
cfssl_group Gruppenname von cfssl {{ __cfssl_group }}
cfssl_package Paketname von cfssl {{ __cfssl_package }}
cfssl_extra_packages Liste zusätzlicher Pakete zur Installation []
cfssl_ca_root_dir Pfad zum Stamm-CA-Verzeichnis {{ __cfssl_ca_root_dir }}
cfssl_ca_secret_key_file Pfad zur Datei mit dem geheimen Stamm-Schlüssel {{ cfssl_ca_root_dir }}/ca-key.pem
cfssl_ca_public_key_file Pfad zur Datei mit dem öffentlichen Stamm-Schlüssel {{ cfssl_ca_root_dir }}/ca.pem
cfssl_ca_csr_file Pfad zur CSR-JSON-Datei der Stamm-CA {{ cfssl_ca_root_dir }}/ca.csr
cfssl_ca_csr_config Inhalt der Datei cfssl_ca_csr_config_file {}
cfssl_ca_config_file Pfad zur Konfigurationsdatei der CA im JSON-Format {{ cfssl_ca_root_dir }}/ca-config.json
cfssl_ca_csr_config_file Pfad zur CSR-Konfigurationsdatei der CA im JSON-Format "{{ cfssl_ca_root_dir }}/ca-csr.json"
cfssl_ca_config Inhalt der Datei cfssl_ca_config_file {}
cfssl_certs_dir Pfad zum Verzeichnis für signierte Zertifikate {{ cfssl_ca_root_dir }}/certs
cfssl_service Dienstname von cfssl cfssl
cfssl_db_config Datenbankkonfiguration im YAML-Format. Weitere Details finden Sie in certdb/README.nd. {}
cfssl_db_type Der Typ der Datenbank. Unterstützter Wert ist nur sqlite. Wenn angegeben, führt die Rolle spezifische Aufgaben für die Datenbank aus und startet cfssl als Server. ""
cfssl_db_dir Pfad zum Datenbankverzeichnis {{ __cfssl_db_dir }}
cfssl_db_sqlite_bin Dateiname des sqlite-Befehls sqlite3
cfssl_db_sqlite_database_file Pfad zur sqlite-Datenbankdatei {{ cfssl_db_dir }}/certdb.db
cfssl_db_sqlite_sql_file_dir Pfad zu einem Verzeichnis, in dem SQL-Dateien gespeichert sind. {{ __cfssl_db_sqlite_sql_file_dir }}
cfssl_db_migration_dir Pfad zum Datenbank-Migrationsverzeichnis {{ cfssl_ca_root_dir }}/goose/{{ cfssl_db_type }}
cfssl_db_migration_config Konfiguration für die Datenbankmigration {}
cfssl_db_migration_environment Umgebung für die Datenbankmigration development
cfssl_flags Zusätzliche Optionen für das Startskript ""
cfssl_certs Liste der zu signierenden Zertifikate (siehe unten) ""

cfssl_certs

Dies ist eine Liste von Dictionnaires. Ein Element repräsentiert eine CSR.

Schlüssel Beschreibung Pflicht?
name relativer Dateiname aus cfssl_certs_dir ja
SAN Liste von Subject Alternative Names nein
profile Profilname, der beim Signieren verwendet wird ja
json Inhalt der Anfrage-JSON-Datei im YAML-Format ja
owner Unix-Benutzername des Eigentümers der Datei mit dem privaten Schlüssel (Standard ist cfssl_user) nein

Einbeziehen von trombik.cfssl

Sie können die Rolle in Ihren Aufgaben oder Rollen einbeziehen. Verwenden Sie vars, um spezifische Rollenvorlagen zu definieren.

- name: Rolle trombik.cfssl einbeziehen
  include_role:
    name: trombik.cfssl
  vars:
    cfssl_extra_packages:
      - zsh

Wenn Sie jedoch eine einzelne Variable übergeben möchten, die die Rollenvorlagen enthält, müssen Sie Ihre Variable an eine spezielle Brückenrollenvorlage cfssl_vars übergeben.

- name: Rolle trombik.cfssl einbeziehen
  include_role:
    name: trombik.cfssl
  vars:
    cfssl_vars: "{{ my_variable }}"

Das folgende Beispiel funktioniert NICHT:

- name: Rolle trombik.cfssl einbeziehen
  include_role:
    name: trombik.cfssl
  vars: "{{ my_variable }}"

Siehe tests/serverspec/intermediate.yml, das die Rolle mehrfach einbezieht, um Zwischen-CAs zu erstellen.

Debian

Variable Standard
__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 Standard
__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 Standard
__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

Abhängigkeiten

Keine

Beispiel-Playbook

Dieses Beispiel verwaltet cfssl und signiert einige Zertifikate.

Für ein Beispiel für den API-Server siehe tests/serverspec/api.yml.

Für ein Beispiel für mehrere Zwischen-CAs unter einer Stamm-CA siehe tests/serverspec/intermediate.yml.

---
- hosts: localhost
  roles:
    - role: ansible-role-cfssl
  vars:
    # Dieser Testfall folgt den gleichen Schritten wie beschrieben in
    # https://docs.sensu.io/sensu-go/latest/guides/generate-certificates/
    cfssl_certs:
      - name: agent1.example.com.json
        # Subject Alternative Name oder kurz SAN
        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

Lizenz

Copyright (c) 2020 Tomoyuki Sakurai <y@trombik.org>

Erlaubnis zur Nutzung, Kopie, Änderung und Verteilung dieser Software für jeden Zweck, mit oder ohne Gebühr, wird hiermit erteilt, vorausgesetzt, dass der oben genannte Urheberrechtshinweis und diese Erlaubnis in allen Kopien erscheinen.

DIE SOFTWARE WIRD "WIE BESEHEN" BEREITGESTELLT, UND DER AUTOR LEHNT ALLFÄLLIGE GARANTIEN IN BEZUG AUF DIESE SOFTWARE AB, EINSCHLIESSLICH ALLER IMPLIZITEN GARANTIEN DERMARKTFÄHIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. IN KEINEM FALL HAFTET DER AUTOR FÜR BESONDERE, DIREKTE, INDIREKTE ODER FOLGESCHÄDEN ODER FÜR IRGENDEINE SCHÄDEN, DIE AUS DEM VERLUST DER NUTZUNG, DER DATEN ODER DER GEWINNE ENTSTEHEN, OB IN EINER KLAGE AUS VERTRAG, FAHRLÄSSIGKEIT ODER EINER ANDEREN UNRECHTMÄSSIGEN HANDLUNG, DIE AUS ODER IM ZUSAMMENHANG MIT DER NUTZUNG ODER LEISTUNG DIESER SOFTWARE ENTSTEHT.

Autoreninformation

Tomoyuki Sakurai y@trombik.org

Dieses README wurde von qansible erstellt.

Über das Projekt

ansible role for cfssl

Installieren
ansible-galaxy install trombik.cfssl
GitHub Repository
Lizenz
isc
Downloads
1.1k
Besitzer
PGP finger print: 03EB 3D97 5E04 9B0C AB21 93A2 D693 42A9 EFBC 3577 Makerspace and Coliving in Siem Reap, Cambodia: http://info.mkrsgh.org/