Apache mit Let’s Encrypt unter Debian 10
Let’s Encrypt ist eine Zertifizierungsstelle (CA), die eine einfache Möglichkeit bietet, kostenlose TLS/SSL-Zertifikate zu beziehen und zu installieren, wodurch verschlüsseltes HTTPS auf Webservern ermöglicht wird. Es vereinfacht den Prozess, indem es einen Software-Client, Certbot, bereitstellt, der versucht, die meisten der erforderlichen Schritte zu automatisieren. Let’s Encrypt verwendet das ACME-Protokoll (ACMEv2), um den Domainnamen zu überprüfen und das Zertifikat zu steuern und auszustellen. Derzeit ist der gesamte Prozess zum Erhalten und Installieren eines Zertifikats sowohl auf Apache als auch auf Nginx vollständig automatisiert.
In diesem Tutorial wird Certbot verwendet, um ein kostenloses SSL-Zertifikat für Apache unter Debian 10 zu erhalten und um Zertifikate so einzurichten, dass sie automatisch installiert werden.
Voraussetzungen
- Ein Debian 10 Server, ein Nicht-Root Benutzer mit
sudo
Berechtigungen ist angelegt und eine Firewall (ufw oder firewalld) ist eingerichtet. - Ein vollständig registrierter Domainname, zum Beispiel unblog.ch.
- Beide der folgenden DNS-Einträge sind für den Server eingerichtet.
- Ein A Record für
meine_domain
der auf die öffentliche IP-Adresse des Servers verweist. - Ein A Record für
www.meine_domain
der auf die öffentliche IP-Adresse des Servers verweist.
- Ein A Record für
- Apache ist installiert, hierzu kann die Anleitung LAMP Stack auf Debian Installieren befolgt werden. Stelle sicher, dass eine virtuelle Hostdatei für die Domain eingerichtet ist. Dieses Tutorial verwendet als Beispiel
/etc/apache2/sites-available/meine_domain.conf
Hinweis : Derzeit ist Certbot standardmäßig nicht in den Debian-Software-Repositorys verfügbar. Um Certbot als Snap auf Debian zu installieren, muss zuerst snapd
auf dem Server installiert werden. snapd
ist ein Daemon, der zum installieren und Verwalten von Snaps erforderlich ist.
Snap ist ein Softwareverteilungssystem und eine Paketverwaltung für Linux, das bzw. die distributionsübergreifend arbeitet. Das von Canonical entwickelte System unterstützt transaktionale Updates und Rollbacks. Es wurde von Canonical für Ubuntu entwickelt und ist mittlerweile auch für andere Linux-Distributionen verfügbar.
Certbot Installation auf Debian 10
Führe die folgenden Anweisungen in der Befehlszeile auf dem Debian Server aus, um die neueste Version von snapd zu installieren.
$ sudo snap install core; sudo snap refresh core
Führe diesen Befehl in der Befehlszeile aus, um Certbot zu installieren.
$ sudo snap install --classic certbot
Die folgende Anweisung in der Befehlszeile ausführen, um sicherzustellen, dass der Befehl certbot ausgeführt werden kann.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Dieser Befehl um ein Zertifikat abzurufen und um Certbot die Apache-Konfiguration automatisch bearbeiten zu lassen, indem der HTTPS-Zugriff in einem einzigen Schritt aktiviert wird.
$ sudo certbot --apache
Wer die Änderungen an der Apache-Konfiguration selber vornehmen möchte, kann diesen Befehl ausführen.
$ sudo certbot certonly --apache
Die automatische Verlängerung derZertifikate testen, geht mit dem folgenden Befehl.
$ sudo certbot renew --dry-run
Um das ganze zu überprüfen, besuche https://meine_domain/ im Browser deiner Wahl und schaue in der URL-Zeile nach dem Schlosssymbol.
Einrichten des SSL-Zertifikats
Certbot muss den richtigen virtuellen Host in der Apache-Konfiguration finden, damit SSL automatisch konfiguriert werden kann. Dies geschieht insbesondere, indem nach der ServerName
Anweisung gesucht wird, die der Domäne entspricht, für die ein Zertifikat angefordert werden soll.
Öffne zur Überprüfung die virtuelle Hostdatei für die Domain mit vim oder nano
Texteditor.
$ vi /etc/apache2/sites-available/meine_domain.conf
Suche in der Zeile nach ServerName
. Es sollte hier der Domainname stehen meine_domain
.
ServerName meine_domain
Falls noch nicht geschehen, aktualisiere die ServerName
Anweisung so, dass sie auf den Domainname verweist.
Überprüfe als Nächstes die Syntax der Konfigurationsänderungen.
$ sudo apache2ctl configtest
Certbot bietet eine Vielzahl von Möglichkeiten, SSL-Zertifikate über Plugins zu erhalten. Das Apache-Plugin kümmert sich um die Neukonfiguration von Apache und lädt die Konfiguration bei Bedarf neu. Folgender Befehl verwendet dieses Plugin.
$ sudo certbot --apache -d meine_domain -d www.meine_domain
Es wird certbot
mit dem --apache
Plugin ausgeführt und verwendet -d
, um die Domain Namen anzugeben, für die das Zertifikat gültig sein soll.
Wenn man Certbot zum ersten Mal startet, werd man aufgefordert, eine E-Mail-Adresse einzugeben und den Nutzungsbedingungen zuzustimmen. Darüber hinaus wird man gefragt, ob man bereit ist, die E-Mail-Adresse an die Electronic Frontier Foundation weiterzugeben, eine gemeinnützige Organisation, die sich für digitale Rechte einsetzt und auch Certbot herstellt. Bestätige hier mit Y
für die E-Mail-Adresse oder N
um abzulehnen.
Um den Erneuerungsprozess zu testen gibt es folgender Probelauf.
$ sudo certbot renew --dry-run
Fazit
In diesem Tutorial haben wir den Let’s Encrypt-Client installiert, SSL-Zertifikate für die Domain heruntergeladen, Apache für die Verwendung dieser Zertifikate konfiguriert und die automatische Zertifikatserneuerung eingerichtet.
Quellenlink: certbot instructions
Ein Gedanke zu „Lets Encrypt Installation für Debian 10“