Direkt zum Inhalt

Wie erneuere ich ein Let's-Encrypt-SSL-Zertifikat in einem Bitnami-Stack, der auf einer Lightsail-Instance gehostet wird?

Lesedauer: 5 Minute
0

Das Let's-Encrypt-SSL-Zertifikat, das für meine Website in einer Amazon-Lightsail-Bitnami-Instance installiert wurde, läuft bald ab.

Kurzbeschreibung

Let's-Encrypt-SSL-Zertifikate laufen 90 Tage nach ihrer Erstellung ab. Standardzertifikate werden automatisch verlängert, wenn du „Wie installiere ich ein Let's-Encrypt-SSL-Zertifikat in einem Bitnami-Stack, der auf Lightsail gehostet wird?“ verwendest. Die automatische Verlängerung schlägt jedoch möglicherweise fehl, wenn das Zertifikat nicht richtig konfiguriert ist.

Wenn du ein Let's-Encrypt-Zertifikat mit Platzhalterzeichen mithilfe der Methode 2 unter Wie installiere ich ein Let's-Encrypt-SSL-Zertifikat mit Platzhalterzeichen in einem auf Amazon Lightsail gehosteten Bitnami Stack? installiert hast, dann musst du das Zertifikat manuell verlängern. Methode 2 unterstützt keine automatische Verlängerung.

In der folgenden Lösung wird beschrieben, wie ein Zertifikat auf von Bitnami gehosteten Lightsail-Instances wie WordPress, LAMP, Magento und MEAN manuell verlängert wird.

Behebung

Das Tool zur Installation des Zertifikats identifizieren

Identifiziere das Tool, mit dem du das Zertifikat installiert hast. Gehe wie folgt vor, um das Tool zu identifizieren, mit dem du das SSL-Zertifikat installiert hast:

  1. Führe den folgenden Befehl aus, um in den Verzeichnissen /etc/letsencrypt und /opt/bitnami/letsencrypt nach der Zertifikatsdatei zu suchen. Stelle sicher, dass du DOMAIN durch deinen Domainnamen ersetzt.

    sudo grep -irl "$(openssl s_client -verify_quiet -showcerts -connect DOMAIN:443 2>/dev/null | sed -n '/BEGIN/,/END/{p;/END/q}' | head -n 3 | tail -n 2)" /opt/bitnami/letsencrypt /etc/letsencrypt
  2. Wenn sich die Zertifikatsdatei in den Unterverzeichnissen von /opt/bitnami/letsencrypt befindet, wurde das Zertifikat wahrscheinlich mit dem bncert-tool oder dem Lego-Client installiert. Um das zu überprüfen, führe den folgenden Befehl aus:

    sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

Wenn die Ausgabe des Befehls in Schritt 1 mit dem vom zweiten Befehl angegebenen Zertifikatspfad übereinstimmt, wurde das Zertifikat mit bncert-tool oder Lego installiert.

Wenn sich die Zertifikatsdatei in den Unterverzeichnissen von /etc/letsencrypt befindet, wurde das Zertifikat wahrscheinlich mit Certbot installiert. Um das zu überprüfen, führe den folgenden Befehl aus:

sudo certbot certificates

Wenn die Ausgabe des Befehls in Schritt 1 mit dem vom Befehl certbot angegebenen Zertifikatspfad übereinstimmt, wurde das Zertifikat mit Certbot installiert.

Folge auf der Grundlage des identifizierten Tools den entsprechenden Lösungsschritten.

Verlängern eines mit dem bncert-tool oder dem Lego-Tool installierten Let's-Encrypt-Zertifikats

Führe die folgenden Befehle aus:

sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90

Hinweis: Ersetze EMAIL-ADDRESS und verwende eine deiner funktionierenden E-Mail-Adressen. Oder verwende dieselbe E-Mail-Adresse, die du bei der Installation des Zertifikats verwendet hast. Ersetze DOMAIN durch deinen Domainnamen.

sudo /opt/bitnami/ctlscript.sh start

Du kannst die E-Mail, die du für die Installation des Zertifikats verwendet hast, mit dem folgenden Befehl abrufen:

sudo ls /opt/bitnami/letsencrypt/accounts/acm*

Bestätige, wenn nötig, den Domainnamen mit dem folgenden Befehl:

sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

Verlängern eines mit dem Certbot-Tool installierten Let's-Encrypt-Zertifikats

Führe den folgenden Befehl aus, um die Authentifizierungsmethode zu ermitteln, die du für die Installation des Zertifikats verwendet hast:

sudo cat /etc/letsencrypt/renewal/DOMAIN.conf

Hinweis: Ersetze DOMAIN durch den primären Domainnamen des Zertifikats.

Zeige in der Befehlsausgabe den Wert des Authentifikator-Parameters an. Befolge je nach Wert eine der folgenden Verlängerungsmethoden:

Wenn der Wert des Authentifikator-Parameters standalone, webroot, apache, nginx, dns-route53 oder ein anderer Wert ist, der nicht manuell ist, schließe die Verlängerung mit den folgenden Befehlen ab:

sudo /opt/bitnami/ctlscript.sh stop
sudo certbot renew
sudo /opt/bitnami/ctlscript.sh start

Diese Befehle verlängern alle installierten Zertifikate, die erneuert werden sollen.

- oder -

Wenn der Authentifikator-Parameterwert manuell ist und der pref_challs-Parameterwert dns ist, ist es nicht möglich, eine automatische Verlängerung einzurichten. Du musst es manuell mit den folgenden Schritten verlängern. Hinweis: Du musst diesen Schritt bei jeder Verlängerung des Zertifikats wiederholen.

  1. Bei dieser Methode musst du TXT-Datensätze im DNS-Anbieter der Domain hinzufügen. Es hat sich bewährt, die Befehle in Linux GNU Screen auszuführen, um ein Timeout der Sitzung zu verhindern. Weitere Informationen findest du auf der Linuxize-Website unter How to use Linux Screen (So verwendest du Linux Screen).
    Um eine Screen-Sitzung zu starten, gib den folgenden Befehl ein:

    screen -S letsencrypt
  2. Führe den folgenden Befehl aus und suche nach dem Domains-Parameterwert. Ersetze DOMAIN durch den primären Domainnamen deines Zertifikats:

    sudo certbot certificates -d DOMAIN
  3. Führe den folgenden Befehl aus, um das Zertifikat zu verlängern. Stelle sicher, dass du jede Domain, die du im vorherigen Befehl mit der Option -d gefunden hast, in derselben Reihenfolge einbeziehst. Wenn du Domains hinzufügst, entfernst oder deren Reihenfolge änderst, wird möglicherweise ein neues Zertifikat erstellt, anstatt das ursprüngliche Zertifikat zu verlängern.

    sudo certbot certonly --manual --preferred-challenge dns -d DOMAIN-1 -d DOMAIN-2 --force-renewal
  4. Du wirst aufgefordert, zu überprüfen, ob du Eigentümer der angegebenen Domain bist. Diese Überprüfung erfolgt durch Hinzufügen von TXT-Datensätzen zu den DNS-Datensätzen für deine Domain. Let's Encrypt gibt einen oder mehrere TXT-Datensätze aus, die du zur Überprüfung verwenden musst.

  5. Wenn du einen TXT-Datensatz auf dem Bildschirm siehst, füge den angegebenen Datensatz zum DNS der Domain hinzu.
    Wichtig: Drücke die Eingabetaste erst, wenn du dich vergewissert hast, dass der TXT-Datensatz an das Internet-DNS weitergegeben wird. Drücke nicht STRG+D, da dadurch die aktuelle Screen-Sitzung beendet wird.

  6. Um zu bestätigen, dass der TXT-Datensatz an das Internet-DNS weitergegeben wird, schaue auf der MXToolbox-Website unter DNS Text Lookup (DNS-Textsuche) nach. Gib den folgenden Text in das Textfeld ein:

    _acme-challenge.example.com

    Hinweis: Ersetze example.com durch deine Domain.

  7. Wähle TXT Lookup, um die Prüfung auszuführen.

  8. Wenn die TXT-Datensätze an das Internet-DNS weitergegeben wurden, wird der TXT-Datensatzwert auf der Seite angezeigt. Kehre zum Bildschirm zurück und drücke die EINGABETASTE.

  9. Wenn du aus der Shell entfernt wirst, kehre über den Befehl screen -r SESSIONIDzurück.

  10. Rufe die Sitzungs-ID ab: Führe den Befehl screen -ls aus.

  11. Wenn du in der Certbot-Eingabeaufforderung aufgefordert wirst, einen weiteren TXT-Datensatz hinzuzufügen, führe die Schritte 5 bis 8 erneut aus.

Nachdem das SSL-Zertifikat erfolgreich generiert wurde, erhältst du die folgende Meldung: „Successfully received certificate“.

AWS OFFICIALAktualisiert vor 4 Monaten