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.
ansible-galaxy install trombik.cfssl