Letsencrypt mit Certbot automatisch erstellen und aktualisieren

Mit Letsencrypt kann man sehr einfach SSL-Zertifikatte erstellen und kostenlos signieren lassen. In einem älteren Beitrag habe ich beschrieben, wie ich Zertifikate hole und automatisch aktualisiere. Das war noch etwas „hemdsärmlig“ durch clonen eines entsprechenden git-Repos. Inzwischen macht „man“ das offenbar mit dem Certbot. Und so benutze ich diesen:

„Certbot“ via Ansible installieren – inkl. Auto-Renew der Letsencrypt-Zertifikate

Mit folgendem Playbook installiere ich certbot auf den betroffenen Hosts und richte eine automatische Aktualisierung aller (auch späteren) Zertifikite ein:

- name: Install certbot
  hosts: certbot

  # see https://galaxy.ansible.com/geerlingguy/certbot/

  roles:
    - role: geerlingguy.certbot
      tags: certbot
      certbot_install_from_source: "{{ (ansible_distribution == 'Ubuntu' and ansible_distribution_version == '16.04') }}"
      certbot_auto_renew: true
      certbot_auto_renew_hour: 5
      certbot_auto_renew_minute: 30
      certbot_create_if_missing: no
      certbot_admin_email: dirk@sdfsdfsdf.de
      certbot_create_standalone_stop_services:
        - apache2

Bemerkenswert ist die certbot_install_from_source-Zeile: Der mit Ubuntu 16.04 standardmäßig in dessen Repo verteilte certbot ist zu alt. Daher gebe ich hier an, dass dann certbot nicht von Ubuntu sondern den Quellen installiert werden soll.

Dabei wird folgender Crontab-Eintrag erzeugt:

#Ansible: Certbot automatic renewal.
30 5 * * * /opt/certbot/certbot-auto renew --quiet --no-self-upgrade

--no-self-upgrade weil certbot via Ansible aktualisiert wird.

Zertifikate erstellen

Neue Web-Server mit Zertifikat erstelle ich folgendermaßen:

  1. Simple Apache-Konfig für http erstellen und aktivieren:
    <VirtualHost *:80>
            ServerName diddeldaddeldum.de
            DocumentRoot /export/www/diddeldaddeldum.de/
            ServerAdmin webmaster@diddeldaddeldum.de
    
            #LogLevel warn
            ServerSignature Off
            ErrorLog ${APACHE_LOG_DIR}/diddeldaddeldum.de_error.log
            CustomLog ${APACHE_LOG_DIR}/diddeldaddeldum.de_access_log combined
    
            Include /etc/apache2/dstk-all-sites-incl.conf
    </VirtualHost>
    

    und

    a2ensite diddeldaddeldum.de
    
  2. Mit certbot alles erledigen, was Zertifikat und SSL betrifft:
    /opt/certbot/certbot-auto
    

    …und den Anweisungen folgen.

    Dadurch wird

    • ein Zertifikat und /etc/letsencrypt/... erstellt und via letsencrypt verifiziert und signiert.
    • ein SSL-Web-Server erstellt und konfiguriert.
    • ein 1:1 Redirect vom HTTP zum HTTPS-Server eingerichtet (sofern gewünscht).
  3. Nun noch in der SSL-Webserver-Konfig ggf. für diesen Server notwendige Einstellungen vornehmen. Fertig.

One thought on “Letsencrypt mit Certbot automatisch erstellen und aktualisieren

Kommentar verfassen