ansibleguy.infra_certs

Ansible Rolle - Zertifikat Generator

Ansible Rolle zum Erstellen von Zertifikaten für einen Linux-Server.

Kauf mir einen Kaffee

Molecule Test Status YamlLint Test Status PyLint Test Status Ansible-Lint Test Status Ansible Galaxy

Molecule Logs: Kurz, Voll

Getestet:

  • Debian 11
  • Debian 12

Installation

# neueste Version
ansible-galaxy role install git+https://github.com/ansibleguy/infra_certs

# aus Galaxy
ansible-galaxy install ansibleguy.infra_certs

# oder in benutzerdefiniertem Rollen-Pfad
ansible-galaxy install ansibleguy.infra_certs --roles-path ./roles

# Abhängigkeiten installieren
ansible-galaxy install -r requirements.yml

Verwendung

Sie benötigen eine einfache Ansible GUI? Schauen Sie sich meine Ansible WebUI an.

Hinweise

Die self-signed und minimal-ca Modi erstellen nur ein einzelnes Zertifikat pro Ausführung.

Wiederholungen können einige Überheadkosten sparen, indem das Tag 'certs' verwendet wird.

Der LetsEncrypt Modus wird mehrere Zertifikate erstellen oder entfernen, wie definiert.

Konfiguration

Beispiel für LetsEncrypt-Konfiguration:

certs:
  mode: 'le_certbot'
  path: '/etc/apache2/ssl'
  letsencrypt:
    certs:
      myNiceSite:
        domains: ['myRandomSite.net', 'ansibleguy.net']
        email: '[email protected]'
    service: 'apache'

Beispiel für Selbstsignierte Konfiguration:

certs:
  mode: 'selfsigned'  # oder 'snakeoil' (wenn es schneller ist)
  path: '/etc/nginx/ssl'
  group_key: 'nginx'
  owner_cert: 'nginx'
  cert:
    cn: 'Mein großes Zertifikat!'
    org: 'AnsibleGuy'
    country: 'AT'
    email: '[email protected]'
    domains: ['mySoGreat.site', 'ansibleguy.net']
    ips: ['192.168.44.2']
    pwd: !vault ...

Beispiel für minimal-CA Konfiguration:

certs:
  mode: 'ca'
  path: '/etc/ca/certs'
  mode_key: '0400'
  cert:
    name: 'custom_file_name'  # Erweiterung wird angehängt
    cn: 'Mein großes Zertifikat!'
    org: 'AnsibleGuy'
    country: 'AT'
    email: '[email protected]'
    domains: ['mySoGreat.site', 'ansibleguy.net']
  ca:
    path: '/etc/ca'
    cn: 'SUPER Certificat Authority'
    org: 'AnsibleGuy'
    country: 'AT'
    email: '[email protected]'
    pwd: !vault ...

Mit der minimal-CA können Sie mehrere Zertifikate erstellen, die von der CA signiert sind, indem Sie die Rolle mit geänderten 'cert'-Einstellungen erneut ausführen.

Sie können 'ansible-vault' verwenden, um Ihre Passwörter zu verschlüsseln:

ansible-vault encrypt_string

Ausführung

Führen Sie das Playbook aus:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml --ask-vault-pass

Es gibt auch einige nützliche Tags:

  • certs => ignoriert CA-Aufgaben; generiert nur Zertifikate
  • selfsigned
  • config
  • certs

Um Fehler zu debuggen - können Sie die 'debug'-Variable zur Laufzeit setzen:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes

Funktionalität

  • Paketinstallation

    • Ansible-Abhängigkeiten (minimal)
    • Krypto-Abhängigkeiten
  • Konfiguration

    • Vier mögliche Modi:

      • Generiere ein Selbst-signiertes Zertifikat
      • Verwende eine minimalistische Zertifizierungsstelle, um signierte Zertifikate zu erstellen
      • Konfiguriere LetsEncrypt-Certbot, um öffentlich gültige Zertifikate zu erstellen
        • Unterstützt für Nginx und Apache
        • Der Host muss einen gültigen öffentlichen DNS-Eintrag haben, der auf ihn verweist
        • Muss über Port 80/tcp öffentlich erreichbar sein
    • Standardkonfiguration:

      • Modus => Selbst-signiert

Info

  • Hinweis: Diese Rolle unterstützt derzeit nur Debian-basierte Systeme

  • Hinweis: Die meisten Funktionen der Rolle können optional ein- oder ausgeschaltet werden.

    Für alle verfügbaren Optionen - siehe die Standardkonfiguration in der Haupt-Standarddatei!

  • Hinweis: Wenn Sie Massenverwaltung von Zertifikaten benötigen, sollten Sie sich die Rolle ansibleguy.infra_pki ansehen, die es Ihnen ermöglicht, eine vollständige Public Key Infrastruktur zu erstellen und zu verwalten.

  • Hinweis: Der Zertifikat-Dateiname (name-Variable wie definiert oder sonst CommonName) wird aktualisiert:

    • Leerzeichen werden in Unterstriche umgewandelt
    • Alle Zeichen außer "0-9a-zA-Z." werden entfernt
    • Die Dateierweiterung (crt/chain.crt/key/csr) wird angehängt
  • Warnung: Nicht jede Einstellung/Variable, die Sie angeben, wird auf Gültigkeit überprüft. Falsche Konfigurationen können die Rolle beschädigen!

  • Info: Damit die LetsEncrypt-Aktualisierung funktioniert, müssen Sie ausgehende Verbindungen zu:

    80/tcp, 443/tcp+udp zu acme-v02.api.letsencrypt.org, staging-v02.api.letsencrypt.org (debug-Modus) und r3.o.lencr.org zulassen.

Über das Projekt

Meat-role to generate/manage certificates for other roles

Installieren
ansible-galaxy install ansibleguy.infra_certs
GitHub Repository
Lizenz
other
Downloads
7.6k
Besitzer
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg