Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Schützen Sie Ihre Lightsail LAMP-Instanz mit Let's Encrypt SSL-Zertifikaten
Amazon Lightsail macht es einfach, Ihre Websites und Anwendungen mithilfe von Lightsail-Load Balancern mit SSL/TLS zu sichern. Die Verwendung eines Lightsail-Loadbalancers ist jedoch im Allgemeinen möglicherweise nicht die richtige Wahl. Möglicherweise benötigt Ihre Website nicht die Skalierbarkeit oder Fehlertoleranz, die Load Balancer bieten, oder vielleicht möchten Sie die Kosten optimieren.
Im letzteren Fall können Sie Let's Encrypt verwenden, um ein kostenloses SSL-Zertifikat zu erhalten. Wenn dies der Fall ist, ist das kein Problem. Sie können diese Zertifikate in Lightsail-Instances integrieren. In diesem Tutorial erfahren Sie, wie Sie ein Let's Encrypt Wildcard-Zertifikat mit Certbot anfordern und in Ihre LAMP-Instance integrieren können.
Wichtig
-
Die Linux-Verteilung, die von Bitnami-Instances verwendet wird, wurde im Juli 2020 von Ubuntu zu Debian geändert. Aufgrund dieser Änderung unterscheiden sich einige der Schritte in diesem Tutorial abhängig von der Linux-Verteilung Ihrer Instance. Alle nach der Änderung erstellten Bitnami-Vorlagen-Instances verwenden die Debian-Linux-Verteilung. Instances, die vor der Änderung erstellt wurden, verwenden weiterhin die Ubuntu-Linux-Verteilung. Um die Verteilung Ihrer Instance zu überprüfen, führen Sie den
uname -a
-Befehl aus. Die Antwort zeigt entweder Ubuntu oder Debian als Linux-Verteilung Ihrer Instance an. -
Bitnami ist gerade dabei, die Dateistruktur für viele ihrer Stacks zu ändern. Die Dateipfade in diesem Tutorial können sich ändern, je nachdem, ob Ihr Bitnami-Stack native Linux-Systempakete (Ansatz A) verwendet oder ob es sich um eine eigenständige Installation handelt (Ansatz B). Führen Sie den folgenden Befehl aus, um Ihren Bitnami-Installationstyp zu identifizieren und den Ansatz, dem Sie folgen möchten, zu bestimmen:
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
Inhalt
-
Schritt 3: Anfordern eines Let's Encrypt SSL Wildcard-Zertifikats
-
Schritt 4: Hinzufügen von TXT-Datensätzen zur DNS-Zone Ihrer Domain
-
Schritt 5: Bestätigen, dass die TXT-Datensätze weitergegeben wurden
-
Schritt 6: Abschließen der Let's Encrypt SSL-Zertifikatsanforderung
-
Schritt 7: Erstellen von Links zu den Let's Encrypt-Zertifikatsdateien im Apache-Serververzeichnis
-
Schritt 8: Konfigurieren der HTTP zu HTTPS-Weiterleitung für Ihre Webanwendung
-
Schritt 9: Erneuern der Let's Encrypt Zertifikate alle 90 Tage
Schritt 1: Erfüllen der Voraussetzungen
Erfüllen Sie die folgenden Voraussetzungen, wenn dies nicht ohnehin bereits der Fall ist:
-
Erstellen Sie eine LAMP-Instanz in Lightsail. Weitere Informationen finden Sie unter Erstellen einer Instance.
-
Registrieren Sie einen Domänennamen und verschaffen Sie sich den administrativen Zugriff auf seine DNS-Datensätze. Weitere Informationen finden Sie unter Amazon Lightsail DNS.
Anmerkung
Wir empfehlen Ihnen, die DNS-Einträge Ihrer Domain mithilfe einer Lightsail-DNS-Zone zu verwalten. Weitere Informationen finden Sie unter Erstellen einer DNS-Zone zur Verwaltung der DNS-Datensätze Ihrer Domain.
-
Verwenden Sie das browserbasierte SSH-Terminal in der Lightsail-Konsole, um die Schritte in diesem Tutorial auszuführen. Sie können aber auch Ihren eigenen SSH-Client verwenden, wie z. B. PuTTY. Informationen dazu, wie Sie PuTTY konfigurieren, finden Sie unter PuTTY herunterladen und einrichten, um eine Verbindung über SSH herzustellen.
Nachdem Sie die Voraussetzungen erfüllt haben, fahren Sie mit dem nächsten Abschnitt dieses Tutorials fort.
Schritt 2: Installieren von Certbot auf Ihrer Instance
Certbot ist ein Client, mit dem ein Zertifikat von Let's Encrypt angefordert und auf einem Webserver bereitgestellt wird. Let's Encrypt verwendet das ACME-Protokoll, um Zertifikate auszustellen, und Certbot ist ein ACME-fähiger Client, der mit Let's Encrypt interagiert.
Um Certbot auf Ihrer Lightsail-Instanz zu installieren
-
Melden Sie sich bei der Lightsail-Konsole
an. -
Wählen Sie auf der Lightsail-Startseite das SSH-Schnellverbindungssymbol für die Instanz aus, zu der Sie eine Verbindung herstellen möchten.
-
Nachdem Ihre browserbasierte Lightsail-SSH-Sitzung verbunden ist, geben Sie den folgenden Befehl ein, um die Pakete auf Ihrer Instanz zu aktualisieren:
sudo apt-get update
-
Geben Sie den folgenden Befehl ein, um das Software-Eigenschaftenpaket zu installieren. Die Entwickler von Certbot verwenden ein Personal Package Archive (PPA), um Certbot zu verteilen. Das Software-Eigenschaftenpaket macht es effizienter, mit PPAs zu arbeiten.
sudo apt-get install software-properties-common
Anmerkung
Wenn ein
Could not get lock
-Fehler auftritt, wenn Sie densudo apt-get install
-Befehl ausführen, warten Sie etwa 15 Minuten und versuchen Sie es erneut. Dieser Fehler kann durch einen Cron-Job verursacht werden, der das Apt-Paketverwaltungstool verwendet, um unbeaufsichtigte Aktualisierungen zu installieren. -
Geben Sie den folgenden Befehl ein, um Certbot zum lokalen apt-Repository hinzuzufügen:
Anmerkung
Schritt 5 gilt nur für Instances, die die Ubuntu-Linux-Verteilung verwenden. Überspringen Sie diesen Schritt, wenn Ihre Instance die Debian-Linux-Verteilung verwendet.
sudo apt-add-repository ppa:certbot/certbot -y
-
Geben Sie den folgenden Befehl ein, um apt zu aktualisieren und das neue Repository aufzunehmen:
sudo apt-get update -y
-
Geben Sie den folgenden Befehl ein, um Certbot zu installieren.
sudo apt-get install certbot -y
Certbot ist jetzt auf Ihrer Lightsail-Instanz installiert.
-
Halten Sie das browserbasierte SSH-Terminalfenster geöffnet - Sie kehren später in diesem Tutorial dorthin zurück. Fahren Sie mit dem nächsten Abschnitt dieses Tutorials fort.
Schritt 3: Anfordern eines Let's Encrypt SSL Wildcard-Zertifikats
Beginnen Sie mit der Anforderung eines Zertifikats von Let's Encrypt. Fordern Sie mit Certbot ein Wildcard-Zertifikat an, mit dem Sie ein einzelnes Zertifikat für eine Domäne und ihre Unterdomänen verwenden können. Ein einzelnes Wildcard-Zertifikat funktioniert beispielsweise für die Top-Level-Domäne example.com
und die Unterdomänen blog.example.com
und stuff.example.com
.
So fordern Sie ein Let's Encrypt SSL Wildcard-Zertifikat an
-
Geben Sie in dem browserbasierten SSH-Terminalfenster, das Sie auch in Schritt 2 dieses Tutorials verwendet haben, die folgenden Befehle ein, um eine Umgebungsvariable für Ihre Domain festzulegen. Sie können nun Befehle effizienter kopieren und einfügen, um das Zertifikat zu erhalten.
DOMAIN=
Domain
WILDCARD=*.$DOMAIN
Ersetzen Sie im Befehl
Domain (Domäne)
durch Ihren registrierten Domänennamen.Beispiel:
DOMAIN=
example.com
WILDCARD=*.$DOMAIN
-
Geben Sie den folgenden Befehl ein, um zu bestätigen, dass die Variablen die richtigen Werte zurückgeben:
echo $DOMAIN && echo $WILDCARD
Das Ergebnis sollte in etwa wie folgt aussehen:
-
Geben Sie den folgenden Befehl ein, um Certbot im interaktiven Modus zu starten. Dieser Befehl weist Certbot an, eine manuelle Autorisierungsmethode mit DNS-Herausforderungen zu verwenden, um den Domänenbesitz zu überprüfen. Es fordert ein Wildcard-Zertifikat für Ihre Top-Level-Domäne sowie deren Unterdomänen an.
sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
-
Geben Sie bei Aufforderung Ihre E-Mail-Adresse ein, da sie für Verlängerungs- und Sicherheitshinweise verwendet wird.
-
Lesen Sie die Allgemeinen Geschäftsbedingungen von Let's Encrypt. Wenn Sie damit fertig sind, drücken Sie A, wenn Sie zustimmen. Wenn Sie nicht einverstanden sind, können Sie kein Let's Encrypt-Zertifikat erhalten.
-
Reagieren Sie entsprechend auf die Aufforderung, Ihre E-Mail-Adresse weiterzugeben, und auf die Warnung, dass Ihre IP-Adresse protokolliert wird.
-
Let's Encrypt fordert Sie jetzt auf, zu überprüfen, ob Sie die angegebene Domäne besitzen. Sie tun dies, indem Sie TXT-Einträge zu den DNS-Datensätzen für Ihre Domäne hinzufügen. Es wird ein Satz von TXT-Datensatzwerten bereitgestellt, wie im folgenden Beispiel gezeigt:
Anmerkung
Let's Encrypt kann einen einzelnen oder mehrere TXT-Datensätze bereitstellen, die Sie für die Verifizierung verwenden müssen. In diesem Beispiel wurden zwei TXT-Datensätze für die Verifizierung bereitgestellt.
-
Lassen Sie die browserbasierte Lightsail-SSH-Sitzung geöffnet — Sie werden später in diesem Tutorial darauf zurückkommen. Fahren Sie mit dem nächsten Abschnitt dieses Tutorials fort.
Schritt 4: Hinzufügen von TXT-Datensätzen zur DNS-Zone Ihrer Domain
Wenn Sie einen TXT-Eintrag zur DNS-Zone Ihrer Domäne hinzufügen, wird überprüft, ob Sie die Domäne besitzen. Zu Demonstrationszwecken verwenden wir die Lightsail-DNS-Zone. Die Schritte können jedoch für andere DNS-Zonen ähnlich sein, die typischerweise von Domänen-Registraren gehostet werden.
Anmerkung
Weitere Informationen zum Erstellen einer Lightsail-DNS-Zone für Ihre Domain finden Sie unter Erstellen einer DNS-Zone zur Verwaltung der DNS-Einträge Ihrer Domain in Lightsail.
Um TXT-Einträge zur DNS-Zone Ihrer Domain in Lightsail hinzuzufügen
-
Wählen Sie auf der Lightsail-Startseite die Registerkarte Domains & DNS (Domänen und DNS).
-
Wählen Sie im Abschnitt DNS zones (DNS-Zonen) auf der Seite die DNS-Zone für die Domäne aus, die Sie in der Certbot-Zertifikatsanforderung angegeben haben.
-
Wählen Sie im DNS-Zoneneditor die Registerkarte DNS records (DNS-Datensätze).
-
Wählen Sie Add record (Datensatz hinzufügen).
-
Wählen Sie im Dropdown-Menü Record type (Datensatztyp) die Option TXT record (TXT-Datensatz).
-
Geben Sie die in der Let's Encrypt-Zertifikatsanforderung angegebenen Werte in die Felder Record name (Datensatzname) und Responds with (Antwortet mit) ein.
Anmerkung
Die Lightsail-Konsole füllt den oberen Teil Ihrer Domain vorab aus. Wenn Sie beispielsweise das
-Subdomain hinzufügen möchten, dann müssen Sie im Textfeld nur_acme-challenge.example.com
eingeben und Lightsail fügt das_acme-challenge
.example.com
-Teil für Sie hinzu, wenn Sie den Datensatz speichern. -
Wählen Sie Speichern.
-
Wiederholen Sie die Schritte 4 bis 7, um den zweiten Satz von TXT-Einträgen hinzuzufügen, der durch die Let's Encrypt-Zertifikatsanforderung spezifiziert wurde.
-
Lassen Sie das Browserfenster der Lightsail-Konsole geöffnet — Sie werden später in diesem Tutorial darauf zurückkommen. Fahren Sie mit dem nächsten Abschnitt dieses Tutorials fort.
Schritt 5: Bestätigen, dass die TXT-Datensätze weitergegeben wurden
Verwenden Sie das MxToolbox Tool, um zu überprüfen, ob die TXT-Einträge an das DNS des Internets weitergegeben wurden. Die Verbreitung von DNS-Einträgen kann je nach Ihrem DNS-Hosting-Provider und der konfigurierten Lebenszeit (TTL - Time to Live) für Ihre DNS-Einträge eine Weile dauern. Es ist wichtig, dass Sie diesen Schritt abschließen und bestätigen, dass sich Ihre TXT-Einträge verbreitet haben, bevor Sie Ihre Certbot-Zertifikatsanforderung fortsetzen. Andernfalls schlägt Ihre Zertifikatsanforderung fehl.
So bestätigen Sie, dass sich die TXT-Einträge über das DNS des Internets verbreitet haben
-
Öffnen Sie ein neues Browserfenster und gehen Sie zu https://mxtoolbox.com/TXTLookup.aspx
. -
Geben Sie den folgenden Text in das Textfeld ein.
_acme-challenge.
Domain
Ersetzen Sie
Domain (Domäne)
durch Ihren registrierten Domainnamen.Beispiel:
_acme-challenge.
example.com
-
Wählen Sie TXT Lookup (TXT-Suche), um die Prüfung auszuführen.
-
Eine der folgenden Antworten wird eintreten:
-
Wenn Ihre TXT-Datensätze an das DNS des Internets weitergegeben wurden, sehen Sie eine ähnliche Antwort wie im folgenden Screenshot. Schließen Sie das Browserfenster und fahren Sie mit dem nächsten Abschnitt dieses Tutorials fort.
-
Wenn Ihre TXT-Einträge nicht über das DNS des Internets verbreitet wurden, sehen Sie eine Antwort wie DNS Record not found (DNS-Datensatz nicht gefunden). Vergewissern Sie sich, dass Sie die richtigen DNS-Einträge zur DNS-Zone Ihrer Domäne hinzugefügt haben. Wenn Sie die richtigen Datensätze hinzugefügt haben, warten Sie noch eine Weile, bis sich die DNS-Einträge Ihrer Domäne verbreiten, und führen Sie die TXT-Suche erneut aus.
-
Schritt 6: Abschließen der Let's Encrypt SSL-Zertifikatsanforderung
Kehren Sie zur browserbasierten Lightsail-SSH-Sitzung für Ihre LAMP-Instanz zurück und schließen Sie die Let's Encrypt-Zertifikatsanforderung ab. Certbot speichert Ihr SSL-Zertifikat, Ihre Kette und Ihre Schlüsseldateien in einem bestimmten Verzeichnis auf Ihrer LAMP-Instance.
So schließen Sie die Let's Encrypt SSL-Zertifikatsanforderung ab
-
Drücken Sie in der browserbasierten Lightsail-SSH-Sitzung für Ihre LAMP-Instanz die Eingabetaste, um mit Ihrer Let's Encrypt SSL-Zertifikatsanfrage fortzufahren. Bei Erfolg erscheint eine Antwort ähnlich der im folgenden Screenshot:
Die Nachricht bestätigt, dass Ihre Zertifikats-, Ketten- und Schlüsseldateien im Verzeichnis
/etc/letsencrypt/live/
gespeichert sind.Domain
/Domain (Domäne)
wird Ihr registrierter Domain-Name sein, z. B./etc/letsencrypt/live/
.example.com
/ -
Notieren Sie sich das in der Nachricht angegebene Ablaufdatum. Sie verwenden es, um Ihr Zertifikat bis zu diesem Datum zu verlängern.
-
Da Sie nun das Let's Encrypt SSL-Zertifikat haben, fahren Sie mit dem nächsten Abschnitt dieses Tutorials fort.
Schritt 7: Erstellen von Links zu den Let's Encrypt-Zertifikatsdateien im Apache-Serververzeichnis
Erstellen Sie Links zu den SSL-Zertifikatsdateien von Let's Encrypt im Verzeichnis des Apache-Servers auf Ihrer LAMP-Instance. Außerdem sichern Sie Ihre vorhandenen Zertifikate, falls Sie sie später benötigen.
So erstellen Sie Links zu den Let's Encrypt-Zertifikatsdateien im Apache-Server-Verzeichnis
-
Geben Sie in der browserbasierten Lightsail-SSH-Sitzung für Ihre LAMP-Instanz den folgenden Befehl ein, um die zugrunde liegenden LAMP-Stack-Dienste zu beenden:
sudo /opt/bitnami/ctlscript.sh stop
Es wird eine Antwort ähnlich der folgenden angezeigt:
-
Geben Sie den folgenden Befehl ein, um eine Umgebungsvariable für Ihre Domäne zu setzen.
DOMAIN=
Domain
Ersetzen Sie im Befehl
Domain (Domäne)
durch Ihren registrierten Domänennamen.Beispiel:
DOMAIN=
example.com
-
Geben Sie den folgenden Befehl ein, um zu bestätigen, dass die Variablen die richtigen Werte zurückgeben:
echo $DOMAIN
Das Ergebnis sollte in etwa wie folgt aussehen:
-
Geben Sie die folgenden Befehle einzeln ein, um Ihre vorhandenen Zertifikatsdateien als Backups umzubenennen. Informationen zu den verschiedenen Verteilungen und Dateistrukturen finden Sie im Abschnitt Wichtig am Anfang dieses Tutorials.
-
Für Debian-Linux-Verteilungen
Ansatz A (Bitnami-Installationen mit Systempaketen):
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
Ansatz B (Eigenständige Bitnami-Installationen):
sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
-
Für ältere Instances, die die Ubuntu-Linux-Verteilung verwenden:
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.crt /opt/bitnami/apache/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.key /opt/bitnami/apache/conf/bitnami/certs/server.key.old
-
-
Geben Sie die folgenden Befehle einzeln ein, um Links zu Ihren Zertifikatsdateien von Let's Encrypt im Apache2–Server-Verzeichnis zu erstellen. Informationen zu den verschiedenen Verteilungen und Dateistrukturen finden Sie im Abschnitt Wichtig am Anfang dieses Tutorials.
-
Für Debian-Linux-Verteilungen
Ansatz A (Bitnami-Installationen mit Systempaketen):
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt
Ansatz B (Eigenständige Bitnami-Installationen):
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
-
Für ältere Instances, die die Ubuntu-Linux-Verteilung verwenden:
sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache/conf/bitnami/certs/server.key
sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache/conf/bitnami/certs/server.crt
-
-
Geben Sie den folgenden Befehl ein, um die zugrunde liegenden LAMP-Stapeldienste zu starten, die Sie zuvor gestoppt haben:
sudo /opt/bitnami/ctlscript.sh start
Das Ergebnis sollte in etwa wie folgt aussehen:
Ihre LAMP-Instance ist nun für die Verwendung der SSL-Verschlüsselung konfiguriert. Der Datenverkehr wird jedoch nicht automatisch von HTTP auf HTTPS umgeleitet.
-
Fahren Sie mit dem nächsten Abschnitt dieses Tutorials fort.
Schritt 8: Konfigurieren der HTTP zu HTTPS-Weiterleitung für Ihre Webanwendung
Sie können für Ihre LAMP-Instance eine HTTP-zu-HTTPS-Weiterleitung konfigurieren. Die automatische Umleitung von HTTP auf HTTPS macht Ihre Website nur Ihren Kunden über SSL zugänglich, auch wenn sie sich über HTTP verbinden.
So konfigurieren Sie die HTTP zu HTTPS Weiterleitung für Ihre Webanwendung
-
Geben Sie in der browserbasierten Lightsail-SSH-Sitzung für Ihre LAMP-Instanz den folgenden Befehl ein, um die Konfigurationsdatei des Apache-Webservers mit dem Vim-Texteditor zu bearbeiten:
sudo vim /opt/bitnami/apache2/conf/bitnami/bitnami.conf
Anmerkung
Dieses Tutorial verwendet Vim zu Demonstrationszwecken, Sie können für diesen Schritt jedoch einen beliebigen Texteditor Ihrer Wahl verwenden.
-
Drücken Sie
i
, um in den Einfügemodus im Vim-Editor zu gelangen. -
Geben Sie in der Datei den folgenden Text zwischen
DocumentRoot "/opt/bitnami/apache2/htdocs"
und<Directory "/opt/bitnami/apache2/htdocs">
ein:RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
Das Ergebnis sollte wie folgt aussehen:
-
Drücken Sie die Taste ESC, und geben Sie dann
:wq
ein, um Ihre Änderungen zu schreiben (speichern) und Vim zu beenden. -
Geben Sie den folgenden Befehl ein, um die zugrunde liegenden LAMP-Stapeldienste neu zu starten und Ihre Änderungen wirksam zu machen:
sudo /opt/bitnami/ctlscript.sh restart
Ihre LAMP-Instance ist jetzt so konfiguriert, dass Verbindungen automatisch von HTTP zu HTTPS umgeleitet werden. Wenn ein Besucher zu
http://www.example.com
geht, wird er automatisch an die verschlüsseltehttps://www.example.com
Adresse weitergeleitet.
Schritt 9: Erneuern der Let's Encrypt Zertifikate alle 90 Tage
Die Zertifikate von Let's Encrypt sind 90 Tage lang gültig. Die Zertifikate können 30 Tage bevor sie ablaufen erneuert werden. Um die Let's Encrypt-Zertifikate zu erneuern, führen Sie den ursprünglichen Befehl aus, mit dem sie abgerufen wurden. Wiederholen Sie die Schritte im Abschnitt Anfordern eines Let's Encrypt SSL-Wildcard-Zertifikats in diesem Tutorial.