Wie installiere ich ein Let's-Encrypt-SSL-Zertifikat von Platzhaltern in einem Bitnami-Stack, der auf Amazon Lightsail gehostet wird?

Lesedauer: 9 Minute
0

Wie installiere ich ein SSL-Zertifikat von Platzhaltern für meine Website in einer Amazon-Lightsail-Instance mit einem Bitnami-Stack?

Kurzbeschreibung

Die folgende Auflösung umfasst die Installation eines Let's-Encrypt-SSL-Zertifikats von Platzhaltern für Websites, die in einer Lightsail-Instance mit einem Bitnami-Stack gehostet werden. Beispiele für diese Instance-Vorlagen sind WordPress, LAMP, Magento, MEAN und so weiter. Wenn Sie eine anderen Instance-Vorlage haben oder ein Standardzertifikat installieren möchten, lesen Sie eine der folgenden Informationen:

Standard-Let's-Encrypt-Zertifikate

Informationen zum Installieren eines standardmäßigen Let's-Encrypt-SSL-Zertifikats in einer Lightsail-Instance ohne Bitnami-Stack finden Sie unter Wie installiere ich ein standardmäßiges Let's-Encrypt-SSL-Zertifikat in einer Lightsail-Instance? Dazu gehören Instances wie Amazon Linux 2 und Ubuntu.

Informationen zum Installieren eines standardmäßigen Let's-Encrypt-SSL-Zertifikats in einer Lightsail-Instance mit einem Bitnami-Stack finden Sie unter Wie installiere ich ein Let's-Encrypt-SSL-Zertifikat in einem auf Amazon Lightsail gehosteten Bitnami-Stack? Dazu gehören Instances wie WordPress, LAMP und Magento.

Let's-Encrypt-Zertifikate von Platzhaltern (z. B. *.example.com)

Informationen zum Installieren eines Let's-Encrypt-Zertifikats mit Platzhaltern in einer Lightsail-Instance ohne Bitnami-Stack finden Sie unter Wie installiere ich ein Wildcard-Let's-Encrypt-SSL-Zertifikat in Amazon Lightsail? Dazu gehören Instances wie Amazon Linux 2 und Ubuntu.

Auflösung

Die Schritte zur Installation eines Let's-Encrypt-SSL-Zertifikat von Platzhaltern auf einer von Bitnami gehosteten Lightsail-Instance hängen davon ab, welchen DNS-Anbieter Ihre Domain verwendet. Um festzustellen, welche Methode verwendet werden soll, überprüfen Sie, ob Ihr DNS-Anbieter in der Lego-Dokumentation in DNS-Providern aufgeführt ist. Wählen Sie dann die geeignete Methode aus:

Methode 1: Verwenden Sie das von Bitnami bereitgestellte Lego-Tool, wenn Ihre Domain einen der aufgelisteten DNS-Anbieter verwendet.

Methode 2: Verwenden Sie das Certbot-Paket, wenn Ihre Domain keinen der aufgelisteten DNS-Anbieter verwendet.

Hinweis: Die in diesem Artikel erwähnten Dateipfade können sich ändern, je nachdem, ob Ihr Bitnami-Stack native Linux-Systempakete verwendet (Ansatz A) 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:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

Methode 1

Zusammen mit dem bncert-Tool bietet Bitnami-Stack das Lego-Tool. Dieses Tool unterstützt die Erstellung von SSL-Zertifikaten von Platzhaltern, während bncert-tool dies nicht tut.

Voraussetzungen und Einschränkungen

  • Die folgenden Schritte betreffen die Installation des Zertifikats auf dem Server. Sie müssen zusätzliche Schritte manuell ausführen, z. B. das Konfigurieren des Webservers für die Verwendung des Zertifikats und das Einrichten der HTTPS-Umleitung.
  • Die Domäne muss einen der DNS-Anbieter verwenden, die in den DNS-Anbietern in der Lego-Dokumentation aufgeführt sind.

Hinweis: Im folgenden Beispiel ist der DNS-Anbieter Amazon Route 53 oder Amazon Lightsail.

1.    Erstellen Sie einen AWS Identity and Access Management (IAM)-Benutzer mit programmatischem Zugriff. Die Mindestberechtigungen, die an den IAM-Benutzer angehängt werden müssen, damit Lego die DNS-Herausforderung abschließen kann, finden Sie in der Richtlinie in der Lego-Dokumentation.

2.    Führen Sie die folgenden Befehle in der Instance aus, um die Datei /root/.aws/credentials im Nano-Editor zu öffnen.

sudo mkdir /root/.aws
sudo nano /root/.aws/credentials

3.    Kopieren Sie die folgenden Zeilen in die Datei. Speichern Sie die Datei dann, indem Sie Strg+x drücken, dann y und dann die EINGABETASTE drücken.

Ersetzen Sie im folgenden Befehl aws_access_key_id durch die in Schritt 1 erstellte Zugriffsschlüssel-ID. Ersetzen Sie einen aws_secret_access_key durch den in Schritt 1 erstellten geheimen Zugriffsschlüssel.

[default]
aws_access_key_id = AKIA************E
aws_secret_access_key = 1yop**************************l

4.    Wenn Ihre Bitnami-Instance das Verzeichnis /opt/bitnami/letsencrypt/ nicht enthält, können Sie den Lego-Client manuell mithilfe der folgenden Befehle installieren:

cd /tmp
curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - -O lego.tar.gz
tar xf lego.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

5.    Erstellen Sie ein Let's-Encrypt-Zertifikat auf dem Server. Ersetzen Sie E-MAIL-ADDRESSE durch die E-Mail-Adresse, unter der Sie weitere Updates zu Ihrem Zertifikat erhalten möchten. Ersetzen Sie DOMAIN durch Ihren Domain-Namen.

Route-53-Namensserver

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns route53 --path="/opt/bitnami/letsencrypt" run

Lightsail-Namensserver

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run

Nachdem das SSL-Zertifikat erfolgreich generiert wurde, erhalten Sie die Meldung „Server hat mit einem Zertifikat geantwortet“. Das SSL-Zertifikat und der private Schlüssel werden an folgenden Stellen generiert:

/opt/bitnami/letsencrypt/certificates/DOMAIN.crt

/opt/bitnami/letsencrypt/certificates/DOMAIN.key

6.    Verknüpfen Sie das SSL-Zertifikat und die Zertifikatschlüsseldatei mit den Speicherorten, die derzeit von Ihrem Webserver gelesen werden:

Apache unter Ansatz A

Ersetzen Sie in den folgenden Beispielbefehlen den Platzhalter DOMAIN durch Ihren Domain-Namen.

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
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

Apache unter Anfahrt B

Ersetzen Sie in den folgenden Beispielbefehlen den Platzhalter DOMAIN durch Ihren Domain-Namen.

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
sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

NGINX unter Ansatz A

Ersetzen Sie in den folgenden Beispielbefehlen den Platzhalter DOMAIN durch Ihren Domain-Namen.

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

NGINX unter Ansatz B

Ersetzen Sie in den folgenden Beispielbefehlen den Platzhalter DOMAIN durch Ihren Domain-Namen.

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

7.    Richten Sie die automatische Zertifikatserneuerung ein.

Die Let's-Encrypt-Zertifikate sind 90 Tage gültig. Gehen Sie wie folgt vor, um die Verlängerung des Zertifikats so zu automatisieren, dass das Zertifikat automatisch verlängert wird, bevor es abläuft:

Führen Sie den folgenden Befehl aus, um den Crontab-Editor zu öffnen:

sudo crontab -e -u bitnami

Fügen Sie der Crontab-Datei die folgenden Zeilen hinzu und speichern Sie die Datei. Ersetzen Sie EMAIL-ADDRESS durch Ihre E-Mail-Adresse, DOMAIN durch Ihren Domänennamen und DNS durch den Namen Ihres Namensserver-Anbieters (Route 53, Lightsail usw.).

0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN"  --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful

8.    Richten Sie die HTTPS-Umleitung ein. Weitere Informationen finden Sie auf der Bitnami-Website unter dem folgenden Link:

Methode 2

Voraussetzungen und Einschränkungen

  • Die folgenden Schritte betreffen die Installation des Zertifikats auf dem Server. Sie müssen weiterhin zusätzliche Schritte manuell ausführen, z. B. das Konfigurieren des Webservers für die Verwendung des Zertifikats und das Einrichten der HTTPS-Umleitung.
  • Die automatische Zertifikatserneuerung wird bei dieser Methode nicht unterstützt.

Hinweis: Bevor Sie mit den folgenden Schritten beginnen, installieren Sie Certbot. Installationsanweisungen finden Sie unter Wie installiere ich das Certbot-Paket in meiner Lightsail-Instance für die Installation von Let's-Encrypt-Zertifikaten?

Für Bitnami-gehostete Instances ist die Linux-Distribution entweder Debian oder Ubuntu. Führen Sie folgenden Befehl aus, um zu bestätigen, welche Linux-Distribution Sie haben:

cat /etc/os-release | grep -i ^id

1.    Diese Methode erfordert das Hinzufügen von TXT-Datensätzen im DNS-Anbieter der Domain. Dieser Prozess kann einige Zeit dauern, daher ist es empfehlenswert, die Befehle im Linux-GNU-Bildschirm auszuführen, um ein Timeout der Sitzung zu verhindern. Um eine Bildschirmsitzung zu starten, geben Sie den folgenden Befehl ein:

screen -S letsencrypt

2.    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änen-Besitz zu überprüfen. Ersetzen Sie example.com durch Ihren Domänennamen.

sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com

3.    Sie erhalten eine Aufforderung, zu überprüfen, ob Sie die angegebene Domäne besitzen, indem Sie TXT-Einträge zu den DNS-Einträgen für Ihre Domain hinzufügen. Let's Encrypt stellt entweder einen einzelnen oder mehrere TXT-Datensätze zur Verfügung, die Sie zur Überprüfung verwenden müssen.

4.    Wenn Sie einen TXT-Eintrag auf dem Bildschirm sehen, fügen Sie zuerst den bereitgestellten Datensatz in das DNS Ihrer Domäne ein.
Wichtig: Drücken Sie nicht die Eingabe-Taste, bis Sie bestätigen, dass der TXT-Datensatz an Internet-DNS weitergegeben wird. Drücken Sie auch nicht STRG+D, weil dadurch die Bildschirmsitzung beendet wird.

5.    Um zu bestätigen, dass der TXT-Eintrag an Internet-DNS weitergegeben wurde, suchen Sie unter DNS Text Lookup in MxToolbox nach. Geben Sie den folgenden Text in das Textfeld ein und wählen Sie dann TXT Lookup aus, um die Prüfung auszuführen. Ersetzen Sie unbedingt example.com durch Ihre Domäne.

_acme-challenge.example.com

6.    Wenn Ihre TXT-Einträge an das DNS des Internets weitergegeben wurden, sehen Sie den Wert des TXT-Eintrags auf der Seite. Sie können jetzt zum Bildschirm zurückkehren und die EINGABETASTE drücken.

7.    Wenn Sie aus der Shell entfernt wurden, gehen Sie mit dem Befehl screen -r SESSIONID wieder hinein. Holen Sie sich die Sitzungs-ID, indem Sie den Befehl screen -ls ausführen.

8.    Wenn Sie in der Certbot-Eingabeaufforderung aufgefordert werden, einen weiteren TXT-Datensatz hinzuzufügen, führen Sie die Schritte 4 -7 erneut aus.

9.    Nachdem das SSL-Zertifikat erfolgreich generiert wurde, erhalten Sie die Meldung „Zertifikat erfolgreich erhalten“. Das Zertifikat und die wichtigsten Dateispeicherorte werden ebenfalls bereitgestellt. Speichern Sie diese Dateispeicherorte zur Verwendung im nächsten Schritt in einem Notizblock.

10.    Nur die Installation und Erneuerung des Zertifikats ist abgeschlossen. Sie müssen Ihren Webserver noch für die Verwendung dieses Zertifikats konfigurieren und eine HTTPS-Umleitung einrichten. Verwenden Sie einen der folgenden Befehlsätze, um Ihren Webserver für die Verwendung des Zertifikats zu konfigurieren.

Apache unter Ansatz A

Ersetzen Sie in den folgenden Beispielbefehlen den Platzhalter DOMAIN durch Ihren Domain-Namen.

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
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
sudo /opt/bitnami/ctlscript.sh restart apache

Apache unter Anfahrt B

Ersetzen Sie in den folgenden Beispielbefehlen den Platzhalter DOMAIN durch Ihren Domain-Namen.

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
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
sudo /opt/bitnami/ctlscript.sh restart apache

NGINX unter Ansatz A

Ersetzen Sie in den folgenden Beispielbefehlen den Platzhalter DOMAIN durch Ihren Domain-Namen.

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

NGINX unter Ansatz B

Ersetzen Sie in den folgenden Beispielbefehlen den Platzhalter DOMAIN durch Ihren Domain-Namen.

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

8.    Richten Sie die HTTPS-Umleitung ein. Weitere Informationen finden Sie auf der Bitnami-Website unter dem folgenden Link:


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr