Apache mit Let’s Encrypt auf Ubuntu 16.04 absichern
Einführung
In diesem Tutorial erfahren Sie, wie Sie ein TLS / SSL-Zertifikat von Let’s Encrypt auf einem Ubuntu 16.04-Server einrichten und auf dem Apache als Webserver ausgeführt wird.
SSL-Zertifikate werden in Webservern verwendet, um den Datenverkehr zwischen Server und Client zu verschlüsseln. Dies bietet zusätzliche Sicherheit für Benutzer, die auf Ihre Anwendung zugreifen. Let’s Encrypt bietet eine einfache Möglichkeit, vertrauenswürdige Zertifikate kostenlos zu erhalten und zu installieren.
Voraussetzungen
Ein Ubuntu 16.04-Server mit einem Sudo-fähigen Benutzer ohne Rootberechtigung, den Sie einrichten können, indem Sie unserem Handbuch zum Einrichten des Servers folgen
Der Apache-Webserver wurde mit einem oder mehreren Domänennamen installiert, die ordnungsgemäß über virtuelle Hosts konfiguriert wurden, die ServerName angeben.
Wenn Sie bereit sind, fortzufahren, melden Sie sich mit Ihrem Sudo-aktivierten Konto bei Ihrem Server an.
Schritt 1 – Installieren Sie den Let’s Encrypt Client
Let’s Encrypt-Zertifikate werden über die Client-Software abgerufen, die auf Ihrem Server ausgeführt wird. Der offizielle Client heißt Certbot und seine Entwickler unterhalten ein eigenes Ubuntu-Software-Repository mit aktuellen Versionen. Da sich Certbot in solch einer aktiven Entwicklung befindet, ist es sinnvoll, dieses Repository zu verwenden, um eine neuere Version zu installieren, als Ubuntu standardmäßig bietet.
Fügen Sie zuerst das Repository hinzu:
sudo add-apt-repository ppa: certbot / certbot
Sie müssen zur Bestätigung die EINGABETASTE drücken. Aktualisieren Sie anschließend die Paketliste, um die Paketinformationen des neuen Repositorys abzurufen:
sudo apt-get update
Und schließlich installieren Sie Certbot mit apt-get aus dem neuen Repository:
sudo apt-get install python-certbot-apache
Der certbot Let’s Encrypt-Client ist jetzt einsatzbereit.
Schritt 2 – Einrichten des SSL-Zertifikats
Die Generierung des SSL-Zertifikats für Apache mit Certbot ist recht unkompliziert. Der Client erhält automatisch ein neues SSL-Zertifikat, das für die als Parameter angegebenen Domänen gültig ist, und installiert es.
Um die interaktive Installation auszuführen und ein Zertifikat zu erhalten, dass nur eine einzelne Domäne abdeckt, führen Sie den Befehl certbot wie folgt aus, wobei example.com Ihre Domäne ist:
sudo certbot –apache -d example.com
Wenn Sie ein einzelnes Zertifikat installieren möchten, das für mehrere Domänen oder Unterdomänen gültig ist, können Sie es als zusätzliche Parameter an den Befehl übergeben. Der erste Domänenname in der Liste der Parameter ist die Basisdomäne, die von Let’s Encrypt zum Erstellen des Zertifikats verwendet wird. Aus diesem Grund empfehlen wir, dass Sie den bloßen Top-Level-Domänennamen als ersten in der Liste übergeben, gefolgt von weiteren Unterdomänen oder Aliase:
sudo certbot –apache -d beispiel.com -d www.example.com
In diesem Beispiel lautet die Basisdomäne example.com.
Wenn Sie über mehrere virtuelle Hosts verfügen, sollten Sie den certbot einmal ausführen, um jeweils ein neues Zertifikat zu generieren. Sie können mehrere Domänen und Unterdomänen auf beliebige Weise auf Ihre virtuellen Hosts verteilen.
Nachdem die Abhängigkeiten installiert sind, wird eine schrittweise Anleitung zum Anpassen der Zertifikatoptionen angezeigt. Sie werden aufgefordert, eine E-Mail-Adresse für die Wiederherstellung verlorener Schlüssel und Benachrichtigungen anzugeben, und Sie können wählen, ob Sie sowohl den HTTP- als auch den https-Zugriff aktivieren oder alle Anfragen zur Weiterleitung an https zwingen möchten. In der Regel ist es am sichersten, https zu benötigen, es sei denn, Sie benötigen einen unverschlüsselten http-Verkehr.
Wenn die Installation abgeschlossen ist, sollten Sie die generierten Zertifikatsdateien unter / etc / letsencrypt / live finden können. Sie können den Status Ihres SSL-Zertifikats mit dem folgenden Link überprüfen (vergessen Sie nicht, example.com durch Ihre Basisdomäne zu ersetzen):
https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest
Sie sollten jetzt mit einem https-Präfix auf Ihre Website zugreifen können.
Schritt 3 – Überprüfen der automatischen Erneuerung von Certbot
Die Zertifikate werden nur noch 90 Tage verschlüsselt. Das von uns installierte certbot-Paket kümmert sich jedoch um uns, indem es zweimal täglich über einen systemd-Timer certbot erneuert. Bei Nicht-Systemd-Distributionen wird diese Funktionalität von einem cron-Skript in /etc/cron.d bereitgestellt. Die Aufgabe wird zweimal täglich ausgeführt und jedes Zertifikat, das innerhalb von dreißig Tagen abläuft, wird erneuert.
Um den Erneuerungsprozess zu testen, können Sie mit certbot einen Testlauf durchführen:
sudo certbot erneuern – dry-run
Wenn Sie keine Fehler sehen, sind Sie fertig. Bei Bedarf erneuert Certbot Ihre Zertifikate und lädt Apache erneut, um die Änderungen zu übernehmen. Wenn der automatisierte Erneuerungsprozess jemals fehlschlägt, sendet Let’s Encrypt eine Nachricht an die von Ihnen angegebene E-Mail und benachrichtigt Sie, wenn das Zertifikat bald abläuft.