thiagoalmeidasa.certbot_route53

Ansible Rolle: Certbot (für Let's Encrypt)

Build-Status

Installiert und konfiguriert Certbot (für Let's Encrypt).

Anforderungen

Wenn Sie aus dem Quellcode installieren, wird Git benötigt. Sie können Git mit der Rolle geerlingguy.git installieren.

Im Allgemeinen führt die Installation aus dem Quellcode (siehe Abschnitt „Installation aus dem Quellcode von Git“) zu einer besseren Erfahrung bei der Verwendung von Certbot und Let's Encrypt, insbesondere wenn Sie eine ältere Betriebssystemversion verwenden.

Rollenvariablen

Die Variable certbot_install_from_source steuert, ob Certbot aus Git oder über das Paketmanagement installiert werden soll. Letzteres ist die Voreinstellung, daher ist die Variable standardmäßig auf nein gesetzt.

certbot_auto_renew: true
certbot_auto_renew_user: root
certbot_auto_renew_hour: "3"
certbot_auto_renew_minute: "30"
certbot_auto_renew_options: "--quiet --no-self-upgrade"

Standardmäßig konfiguriert diese Rolle einen Cron-Job, der unter dem angegebenen Benutzerkonto zu der angegebenen Stunde und Minute jeden Tag ausgeführt wird. Die Voreinstellungen führen certbot renew (oder certbot-auto renew) jeden Tag um 03:30:00 über Cron aus, mit dem Benutzer, den Sie in Ihrem Ansible-Playbook verwenden. Es wird empfohlen, einen benutzerdefinierten Benutzer/Stunde/Minute festzulegen, damit die Erneuerung in einer verkehrsarmen Zeit erfolgt und von einem Nicht-Root-Benutzerkonto durchgeführt wird.

Automatische Zertifikatserstellung

Derzeit gibt es eine integrierte Methode zur Erstellung neuer Zertifikate mit dieser Rolle: standalone. Weitere Methoden (z. B. mit nginx oder apache und einem Webroot) können in Zukunft hinzugefügt werden.

Für ein komplettes Beispiel: siehe das voll funktionsfähige Test-Playbook in molecule/default/playbook-standalone-nginx-aws.yml.

certbot_create_if_missing: false
certbot_create_method: certonly

Setzen Sie certbot_create_if_missing auf ja oder True, um dieser Rolle zu erlauben, Zertifikate zu erstellen. Legen Sie die verwendete Methode zur Erstellung von Zertifikaten mit der Variable certbot_create_method fest – derzeit erlaubte Werte sind: certonly.

certbot_admin_email: email@example.com

Die E-Mail-Adresse, die zur Zustimmung zu den Nutzungsbedingungen von Let's Encrypt und zum Abonnieren von zertifikatsbezogenen Benachrichtigungen verwendet wird. Diese sollte angepasst und auf eine E-Mail-Adresse gesetzt werden, die Sie oder Ihre Organisation regelmäßig überwacht.

certbot_certs: []
  # - email: [email protected]
  #   domains:
  #     - example1.com
  #     - example2.com
  # - domains:
  #     - example3.com

Eine Liste von Domains (und anderen Daten), für die Zertifikate erstellt werden sollen. Sie können einen email-Schlüssel zu jedem Listenelement hinzufügen, um die certbot_admin_email zu überschreiben.

certbot_create_command: "{{ certbot_script }} certonly --standalone --noninteractive --agree-tos --email {{ cert_item.email | default(certbot_admin_email) }} -d {{ cert_item.domains | join(',') }}"

Der certbot_create_command definiert den Befehl zur Erstellung des Zertifikats.

Installation aus dem Quellcode von Git

Sie können Certbot aus dem Git-Quellcode-Repository installieren, wenn gewünscht. Dies kann in mehreren Fällen nützlich sein, insbesondere wenn ältere Distributionen keine Certbot-Pakete zur Verfügung haben (z. B. CentOS < 7, Ubuntu < 16.10 und Debian < 8).

certbot_install_from_source: false
certbot_repo: https://github.com/certbot/certbot.git
certbot_version: master
certbot_keep_updated: true

Optionen für das Certbot Git-Repository. Um aus dem Quellcode zu installieren, setzen Sie certbot_install_from_source auf ja. Dies klont das konfigurierte certbot_repo, wobei die Einstellung certbot_version beachtet wird. Wenn certbot_keep_updated auf ja gesetzt ist, wird das Repository bei jedem Ausführen dieser Rolle aktualisiert.

certbot_dir: /opt/certbot

Das Verzeichnis, in dem Certbot geklont wird.

Wildcard-Zertifikate

Let's Encrypt unterstützt die Erstellung von Wildcard-Zertifikaten, aber der Prozess zur Erstellung und Verwendung ist etwas aufwendiger. Siehe die Kommentare in diesem Pull-Request für ein Beispiel, wie Sie diese Rolle verwenden können, um Wildcard-Zertifikate zu verwalten.

Michael Porter hat auch eine Anleitung zur Erstellung eines Let's Encrypt Wildcard-Zertifikats mit Ansible veröffentlicht, insbesondere mit Cloudflare.

Abhängigkeiten

Keine.

Beispiel-Playbook

- hosts: servers

  vars:
    certbot_auto_renew_user: your_username_here
    certbot_auto_renew_minute: "20"
    certbot_auto_renew_hour: "5"

  roles:
    - thiagoalmeidasa.certbot_route53

Siehe andere Beispiele im Verzeichnis tests/.

Manuelle Zertifikatserstellung mit Certbot

Hinweis: Sie können diese Rolle automatisch Zertifikate generieren lassen; siehe die oben stehende Dokumentation zur "Automatischen Zertifikatserstellung".

Sie können Zertifikate manuell mit dem Skript certbot (oder certbot-auto) erstellen (verwenden Sie letsencrypt auf Ubuntu 16.04 oder verwenden Sie /opt/certbot/certbot-auto, falls Sie aus dem Quellcode/Git installieren). Hier sind einige Beispielbefehle zur Konfiguration von Zertifikaten mit Certbot:

# Automatisch Zertifikate für alle Apache-virtuellen Hosts hinzufügen (mit Vorsicht zu verwenden!).
certbot --apache

# Zertifikate generieren, aber keine Apache-Konfiguration ändern (sicherer).
certbot --apache certonly

Wenn Sie den Prozess zur vollständigen Automatisierung der Hinzufügung eines neuen Zertifikats vollumfänglich automatisieren möchten, aber nicht die integrierte Funktionalität dieser Rolle verwenden möchten, können Sie dies mit den Befehlszeilenoptionen zur Registrierung, zur Annahme der Nutzungsbedingungen und zur Erstellung eines Zertifikats mit dem Standalone-Server tun:

  1. Stellen Sie sicher, dass alle Dienste, die auf den Ports 80 und 443 (Apache, Nginx, Varnish usw.) lauschen, gestoppt sind.
  2. Registrieren Sie sich mit etwas wie certbot register --agree-tos --email [[email protected]] - Hinweis: Diesen Schritt benötigen Sie in Zukunft nicht mehr, wenn Sie weitere Zertifikate auf demselben Server erstellen.
  3. Generieren Sie ein Zertifikat für eine Domain, deren DNS auf diesen Server zeigt: certbot certonly --noninteractive --standalone -d example.com -d www.example.com
  4. Starten Sie die Dienste, die zuvor auf den Ports 80 und 443 liefen, neu.
  5. Aktualisieren Sie die TLS-Konfiguration des virtuellen Hosts Ihres Webservers, damit er auf das neue Zertifikat (fullchain.pem) und den privaten Schlüssel (privkey.pem) zeigt, das Certbot gerade für die Domain erstellt hat, die Sie im certbot-Befehl angegeben haben.
  6. Laden Sie Ihren Webserver neu oder starten Sie ihn neu, damit er die neue HTTPS-Konfiguration des virtuellen Hosts verwendet.

Automatische Erneuerung von Certbot-Zertifikaten

Standardmäßig fügt diese Rolle einen Cron-Job hinzu, der alle installierten Zertifikate einmal pro Tag zur von Ihnen gewählten Stunde und Minute erneuert.

Sie können die automatische Erneuerung testen (ohne das Zertifikat tatsächlich zu erneuern) mit dem Befehl:

/opt/certbot/certbot-auto renew --dry-run

Siehe vollständige Dokumentation und Optionen auf der Certbot-Website.

Lizenz

MIT / BSD

Installieren
ansible-galaxy install thiagoalmeidasa.certbot_route53
GitHub Repository
Lizenz
mit
Downloads
4.9k
Besitzer
Linux, open source, containers, docker. Nerd, with a big interest in the philosophical, biological, social, and cultural aspects of human life.