ansibleguy.infra_certs
Ansible Rolle - Zertifikat Generator
Ansible Rolle zum Erstellen von Zertifikaten für einen Linux-Server.
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.
Meat-role to generate/manage certificates for other roles
ansible-galaxy install ansibleguy.infra_certs