In diesem Artikel zeigen wir Ihnen, wie Sie den Let’s Encrypt-Client auf Ihrem Ubuntu 20.04 VPS installieren, ein SSL-Zertifikat für Ihre Domain ausstellen und es mit dem Apache-Webserver konfigurieren.
Let’s Encrypt ist eine Zertifizierungsstellenorganisation (CA), die es jedem ermöglicht, mit einfachen und automatisierten Befehlen ein kostenloses SSL-Zertifikat zu erhalten. In diesem Tutorial verwenden wir ein Tool namens certbot
, das ein offizieller Teil der Bemühungen von EFF ist, das gesamte Internet zu verschlüsseln. Dank dieses praktischen Tools war die Einrichtung eines SSL-Zertifikats zum Schutz der Besucher Ihrer Website und zur Verbesserung der Sicherheit Ihrer Website noch nie so einfach. Alle von Let’s Encrypt bereitgestellten SSL-Zertifikate können ohne Kosten oder Gebühren für Produktions-/kommerzielle Zwecke verwendet werden. Beginnen wir mit der Installation und Einrichtung.
Beginnen wir mit der Installation – es ist eine einfache Installation und wird nicht lange dauern.
Voraussetzungen
- Für die Zwecke dieses Tutorials verwenden wir ein Ubuntu 20.04 VPS.
- Benutzer mit sudo-Berechtigungen oder vollständigem SSH-Root-Zugriff ist erforderlich. Alle unsere VPS verfügen über Root-Zugriff.
- Ein gültiger Domänenname, der auf die IP-Adresse Ihres Servers verweist. In diesem Tutorial verwenden wir
domain.com
als Beispiel.
1. Verbinden Sie sich mit Ihrem Server
Bevor wir beginnen, müssen Sie sich als Root-Benutzer über SSH mit Ihrem Server verbinden. Verwenden Sie dazu den folgenden Befehl:
ssh root@IP_ADDRESS -p PORT_NUMBER
natürlich müssen Sie IP_ADDRESS
ersetzen und PORT_NUMBER
mit Ihrer tatsächlichen Server-IP-Adresse und SSH-Portnummer.
Stellen Sie nach der Anmeldung sicher, dass Ihr Server auf dem neuesten Stand ist, indem Sie die folgenden Befehle ausführen:
sudo apt update sudo apt upgrade
2. Installieren Sie den Apache2-Webserver
Wir haben uns in unserem Artikel für einen der beliebtesten Webserver entschieden. Wir werden Apache2 installieren, da wir einen Webserver benötigen, auf dem das kostenlose Let’s Encrypt SSL-Zertifikat installiert werden kann. Es macht keinen Sinn, ein SSL-Zertifikat ohne Webseiten zu haben. Informieren Sie sich über einige der besten kostenlosen Let’s Encrypt-Alternativen.
Führen Sie den folgenden Befehl aus, um Apache2 zu installieren:
sudo apt install apache2
Sobald Apache2 auf Ihrem Server installiert ist, können Sie die folgenden Befehle verwenden, um den Dienst zu starten, zu stoppen und zu aktivieren. Wir empfehlen, es zu aktivieren, damit Apache bei jedem Neustart Ihres Servers automatisch gestartet werden kann.
sudo systemctl stop apache2.service sudo systemctl start apache2.service sudo systemctl enable apache2.service
Um zu bestätigen, dass Sie Apache2 richtig installiert haben, können Sie Ihren bevorzugten Webbrowser öffnen und Ihre Server-IP-Adresse oder Ihre Domain eingeben (wir gehen davon aus, dass sie auf Ihren Server verweist) und Sie sollten in der Lage sein, die Apache2-Ubuntu-Standardseite anzuzeigen. P>
3. Konfigurieren Sie den virtuellen Apache-Host
Da Sie jetzt Apache auf Ihrem Server installiert haben, können wir fortfahren und Ihnen zeigen, wie Sie einen virtuellen Host für die Domain erstellen, die Sie verwenden möchten. Wir werden Nano als unseren Editor verwenden, aber wenn Sie Nano nicht bevorzugen, können Sie einen beliebigen Editor Ihrer Wahl verwenden und eine neue Konfigurationsdatei mit dem Namen domain.com.conf
erstellen .
sudo nano /etc/apache2/sites-available/domain.com.conf
Fügen Sie dann die Konfiguration von unten in die Datei ein und ersetzen Sie alle Vorkommen von domain.com
mit Ihrem tatsächlichen Domainnamen.
<VirtualHost *:80> DocumentRoot /var/www/html/domain.com ServerName domain.com ServerAlias www.domain.com <Directory /var/www/html/domain.com/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Nachdem Sie mit der Bearbeitung der Datei fertig sind, speichern und schließen Sie sie.
Nachdem Sie den virtuellen Host konfiguriert haben, können Sie ihn aktivieren, indem Sie die folgenden Befehle ausführen.
Deaktivieren Sie den standardmäßig vorinstallierten virtuellen Host mit:
sudo a2dissite 000-default
aktivieren Sie dann domain.com
virtueller Host:
sudo a2ensite domain.com.conf
Außerdem müssen Sie sicherstellen, dass der Mod rewrite
ist aktiviert:
sudo a2enmod rewrite
Starten Sie Apache neu, damit die Änderungen wirksam werden.
sudo systemctl restart apache2.service
4. Certbot installieren
Wie bereits erwähnt, werden wir Certbot verwenden, damit wir ein kostenloses SSL-Zertifikat von Let’s Encrypt erhalten können. Um dieses nützliche Tool zu installieren, müssen wir das universe
aktivieren Aufbewahrungsort:
sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update
Führen Sie diesen Befehl in der Befehlszeile auf dem Computer aus, um Certbot zu installieren.
sudo apt install certbot python3-certbot-apache
5. Generieren Sie ein kostenloses SSL-Zertifikat von Let’s Encrypt
Es gibt viele Möglichkeiten, ein SSL-Zertifikat mit Certbot zu erhalten. Wir werden das Apache-Plugin verwenden, das sich um die Neukonfiguration des virtuellen Hosts von Apache kümmert und die neue Konfiguration für uns neu lädt. Sie können den folgenden Befehl ausführen, um das Plugin zu verwenden:
sudo certbot --apache
Mit diesem Skript müssen Sie eine Reihe von Fragen beantworten und eine E-Mail-Adresse angeben. Im ersten Schritt müssen Sie eine gültige E-Mail-Adresse eingeben. Die E-Mail-Adresse wird für Benachrichtigungen und Sicherheitshinweise zum Zertifikat Ihrer Website benötigt:
Output: Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]
Im nächsten Schritt bestätigen Sie, dass Sie den Nutzungsbedingungen von Let’s Encrypt zustimmen. Wenn Sie bestätigen möchten, geben Sie einfach A ein und drücken Sie dann [ENTER]:
Output: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A
Wenn Sie die angegebene E-Mail-Adresse mit der EFF (Electronic Frontier Foundation) teilen möchten, um Neuigkeiten und andere Informationen zu erhalten, können Sie Y eingeben. Wenn Sie diese Art von E-Mail nicht erhalten möchten, können Sie N eingeben und Ihre Antwort per senden Eingabe von [ENTER].
Output: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N
Nun müssen Sie die Domain auswählen, für die Sie HTTPS aktivieren möchten. Die an Ihrer Eingabeaufforderung aufgelisteten Domänen und Subdomänen werden automatisch von Ihrer Konfiguration des virtuellen Apache-Hosts abgerufen. Geben Sie die Zahlen getrennt durch Kommas und/oder Leerzeichen ein, oder wenn Sie HTTPS für alle Domains oder Subdomains aktivieren möchten, können Sie die Eingabeaufforderung leer lassen. In beiden Fällen drücken Sie dann [ENTER], um mit dem nächsten Schritt fortzufahren.
Output: Which names would you like to activate HTTPS for? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: domain.com 2: www.domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):
Die Ausgabe sieht ungefähr so aus:
Output: Obtaining a new certificate Performing the following challenges: http-01 challenge for domain.com http-01 challenge for www.domain.com Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/domain.com-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/domain.com-le-ssl.conf Enabling available site: /etc/apache2/sites-available/domain.com-le-ssl.conf
Certbot bietet HTTPS-Umleitung als Option, die Sie aktivieren können. In diesem Schritt fordert Sie das Skript auf, auszuwählen, ob der gesamte HTTP-Datenverkehr auf HTTPS umgeleitet oder die aktuelle Konfiguration beibehalten werden soll. Wählen Sie 1, wenn Sie keine Umleitung wünschen, oder 2, um die Umleitung zu aktivieren, und drücken Sie dann [ENTER].
Output: Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Gut gemacht. Ihr SSL-Zertifikat ist nun installiert und in der Apache-Konfiguration geladen. Sie sehen eine Ausgabe ähnlich der folgenden:
Output: Redirecting vhost in /etc/apache2/sites-enabled/domain.com.conf to ssl vhost in /etc/apache2/sites-available/domain.com-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://domain.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/domain.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/domain.com/privkey.pem Your cert will expire on 2021-09-09. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Um zu überprüfen, ob Ihr neues SSL-Zertifikat korrekt eingerichtet ist, besuchen Sie https://domain.com/
in Ihrem Webbrowser und suchen Sie nach dem grünen Schlosssymbol in der URL-Leiste. Sie können auch eine externe Website oder Tools verwenden, um zu überprüfen, ob Ihr SSL-Zertifikat ordnungsgemäß installiert ist.
6. Überprüfung der automatischen Verlängerung von Certbot
Von Let’s Encrypt bereitgestellte SSL-Zertifikate sind nur 90 Tage gültig. Der von uns installierte Certbot setzt einen Cronjob, der sich um die Erneuerung aller SSL-Zertifikate kümmert, die innerhalb von dreißig Tagen ablaufen. Um den Status dieses Dienstes zu überprüfen, können Sie den folgenden Befehl ausführen:
sudo systemctl status certbot.timer
Output: ● certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled) Active: active (waiting) since Thu 2021-06-11 11:33:00 UTC; 1h 37min ago Trigger: Thu 2021-06-11 15:52:01 UTC; 2h 41min left Triggers: ● certbot.service
oder Sie können alle Timer auflisten mit:
sudo systemctl list-timers
Sie können die automatische Erneuerung Ihrer Zertifikate testen, indem Sie diesen Befehl ausführen:
sudo certbot renew --dry-run
und den Befehl zum Erneuern des SSL-Zertifikats finden Sie an einem der folgenden Orte:
/etc/crontab/ /etc/cron.*/*
Herzliche Glückwünsche! Sie haben erfolgreich ein kostenloses SSL-Zertifikat von Let’s Encrypt für Ihre Domain installiert.
In diesem Artikel haben wir Ihnen gezeigt, wie Sie den Apache2-Webserver und Certbot installieren, einen Apache Virtual Host erstellen und natürlich ein SSL-Zertifikat für Ihre Domain installieren. Ihre Website sollte jetzt sicher sein und sich automatisch erneuern, damit dies auch so bleibt.
Wenn Sie einer unserer Managed Ubuntu Hosting-Kunden sind, müssen Sie natürlich nicht selbst ein Let’s Encrypt SSL-Zertifikat für Ihre Domain installieren – fragen Sie einfach unsere Admins, lehnen Sie sich zurück und entspannen Sie sich. Unsere Administratoren installieren für Sie umgehend ein Let’s Encrypt SSL-Zertifikat auf Ihrem Ubuntu 20.04 VPS, zusammen mit vielen nützlichen Optimierungen, die wir für Sie vornehmen können.
Wenn Ihnen dieser Beitrag über die Installation von Let’s Encrypt auf Ubuntu 20.04 mit Apache gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken, indem Sie die Share-Buttons unten verwenden, oder hinterlassen Sie einfach einen Kommentar im Kommentarbereich. Danke.