[Let's Encrypt] Secure Apache - Debian Stable (Buster)

NEU: Als Gast hast du die Möglichkeit einen Beitrag zu schreiben, ohne sich Registrieren zu müssen.
Probiere es einfach aus!

Um weitere Vorteile zu bekommen, registriere dich jetzt.🙂
  • Let's Encrypt ist eine Zertifizierungsstelle, die von der Internet Security Research Group (ISRG) erstellt wurde. Es bietet kostenlose SSL-Zertifikate über einen vollautomatischen Prozess, der die manuelle Erstellung, Validierung, Installation und Erneuerung von Zertifikaten verhindert.


    Von Let's Encrypt ausgestellte Zertifikate sind ab dem Ausstellungsdatum 90 Tage lang gültig und werden heute von allen gängigen Browsern als vertrauenswürdig eingestuft.


    Diese Anleitung zeigt, wie du ein kostenloses Let's Encrypt SSL-Zertifikat unter Debian 10, Buster installierst, auf dem Apache als Webserver ausgeführt wird. Ich zeige auch, wie du Apache für die Verwendung des SSL-Zertifikats und die Aktivierung von HTTP / 2 konfigurierst.


    Voraussetzungen:

    • Als Root oder Benutzer mit Sudo-Berechtigungen angemeldet .
    • Die Domäne, für die du das SSL-Zertifikat erhalten möchtest, muss auf die IP deines öffentlichen Servers verweisen. Ich werde example.com verwenden.
    • Apache ist bereits installiert.

    Certbot installieren

    Wir werden das certbot-Tool verwenden, um die Zertifikate zu erhalten und zu erneuern.

    Certbot ist ein voll funktionsfähiges und benutzerfreundliches Tool, das die Aufgaben zum Abrufen und Erneuern von Let's Encrypt SSL-Zertifikaten und zum Konfigurieren von Webservern für die Verwendung der Zertifikate automatisiert.


    Das certbot-Paket ist in den Standard-Debian-Repositorys enthalten. Führe die folgenden Befehle aus, um certbot zu installieren:


    $ sudo apt update


    $ sudo apt install certbot


    Starke Dh (Diffie-Hellman) Gruppe erzeugen

    Der Diffie-Hellman-Schlüsselaustausch (DH) ist eine Methode zum sicheren Austausch kryptografischer Schlüssel über einen ungesicherten Kommunikationskanal.

    Führe den folgenden Befehl aus, um einen neuen 2048-Bit-DH-Schlüssel zu generieren:


    $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048


    Wenn du möchtest, kannst du die Größe auf bis zu 4096 Bit ändern. Die Generierung kann jedoch je nach Systementropie mehr als 30 Minuten dauern.


    Erhalten eines Let's Encrypt SSL-Zertifikats


    Um ein SSL-Zertifikat für die Domäne zu erhalten, verwenden wir das Webroot-Plugin, das eine temporäre Datei zum Überprüfen der angeforderten Domäne im ${webroot-path}/.well-known/acme-challenge Verzeichnis erstellt. Der Let's Encrypt-Server sendet HTTP-Anforderungen an die temporäre Datei, um zu überprüfen, ob die angeforderte Domäne auf dem Server aufgelöst wird, auf dem certbot ausgeführt wird.


    Um es einfacher zu machen, werden wir alle HTTP-Anforderungen für .well-known/acme-challenge ein einziges Verzeichnis zuordnen /var/lib/letsencrypt.


    Führe die folgenden Befehle aus, um das Verzeichnis zu erstellen und für den Apache-Server beschreibbar zu machen.


    $ sudo mkdir -p /var/lib/letsencrypt/.well-known


    $ sudo chgrp www-data /var/lib/letsencrypt


    $ sudo chmod g+s /var/lib/letsencrypt


    Um das Duplizieren von Code zu vermeiden, erstelle folgende zwei Konfigurations-Snippets:


    /etc/apache2/conf-available/letsencrypt.conf

    Code
    Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
    <Directory "/var/lib/letsencrypt/">
        AllowOverride None
        Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
        Require method GET POST OPTIONS
    </Directory>

    /etc/apache2/conf-available/ssl-params.conf

    Der Code im obigen Snippet verwendet die von Cipherli.st empfohlenen Chipper, aktiviert OCSP-Heftung, HTTP Strict Transport Security (HSTS) und erzwingt nur wenige sicherheitsorientierte HTTP-Header.


    Stelle sicher, dass beide mod_ssl und mod_headers geladen sind:


    $ sudo a2enmod ssl


    $ sudo a2enmod headers


    Aktiviere das HTTP/2-Modul, um deine Websites schneller und robuster zu machen:


    $ sudo a2enmod http2


    Aktiviere die SSL-Konfigurationsdateien:


    $ sudo a2enconf letsencrypt


    $ sudo a2enconf ssl-params


    Lade die Apache-Konfiguration neu, damit die Änderungen wirksam werden:


    $ sudo systemctl reload apache2


    Verwende das Certbot-Tool mit dem Webroot-Plugin, um die SSL-Zertifikatdateien abzurufen:


    $ sudo certbot certonly --agree-tos --email admin@example.com --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com


    Wenn das SSL-Zertifikat erfolgreich erhalten wurde, gibt certbot die folgende Meldung aus:


    Nachdem du die Zertifikatdateien hast, bearbeite die Konfiguration deiner virtuellen Domänenhosts wie folgt:


    /etc/apache2/sites-available/example.com.conf

    Mit der obigen Konfiguration erzwingen wir HTTPS und leiten von der WWW- zur Nicht-WWW-Version um. Du kannst die Konfiguration ganz nach deinen Wünschen anpassen.


    Lade den Apache-Dienst neu, damit die Änderungen wirksam werden:


    $ sudo systemctl reload apache2


    Öffne deine Website mit https:// und du wirst ein grünes Schlosssymbol sehen.


    Wenn deine Domain mit dem SSL Labs Server-Test testest , erhällst du die Note A + (siehe unten):


    ssllabs-test.jpg


    Automatische Erneuerung Verschlüsseln wir das SSL-Zertifikat


    Die Zertifikate von Let's Encrypt sind 90 Tage gültig. Um die Zertifikate vor Ablauf automatisch zu erneuern, erstellt das certbot-Paket einen Cronjob, der zweimal täglich ausgeführt wird und jedes Zertifikat 30 Tage vor Ablauf automatisch erneuert.


    Sobald das Zertifikat erneuert wurde, müssen wir auch den Apache-Dienst neu laden. Füge --renew-hook "systemctl reload apache2" der /etc/cron.d/certbot Datei Folgendes hinzu:


    /etc/cron.d/certbot

    Code
    0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew --renew-hook "systemctl reload apache2"

    Verwende Certbot- --dry-run, um den Erneuerungsprozess zu testen :


    $ sudo certbot renew --dry-run


    Fazit

    In dieser Anleitung habe ich darüber geschrieben, wie du den Let's Encrypt-Client-Certbot auf Debian verwendest, und SSL-Zertifikate für deine Domains erhälst. Ich habe dir auch gezeigt, wie du Apache für die Verwendung der Zertifikate konfigurierst und einen Cronjob für die automatische Zertifikatserneuerung einrichtest.


    Weitere Informationen zum Certbot-Skript findest du in der Certbot-Dokumentation.

  • Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

    Die letzte Antwort auf dieses Thema liegt mehr als 365 Tage zurück. Das Thema ist womöglich bereits veraltet. Bitte erstelle ggf. ein neues Thema.

    Maximale Anzahl an Dateianhängen: 15
    Maximale Dateigröße: 10 MB
    Erlaubte Dateiendungen: apk, bmp, gif, jpeg, jpg, pdf, png, txt, zip
      Du kannst die Antworten mittels Drücken und Festhalten in ihrer Reihenfolge ändern. Du kannst 10 Antwortmöglichkeiten vorgeben.
      Das Ergebnis ist erst mit dem Ablauf der Umfrage oder der Abgabe einer Stimme sichtbar.