Direkt zum Inhalt

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

Lesedauer: 5 Minute
0

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

Kurzbeschreibung

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

Wenn du ein Zertifikat von Let's Encrypt mit Platzhalterzeichen mithilfe der Methode 2 unter Wie installiere ich ein SSL-Zertifikat von Let's Encrypt 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.

Lösung

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.

Befolge auf der Grundlage des identifizierten Tools die entsprechenden Lösungsschritte.

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

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 authenticator-Parameters an. Befolge je nach Wert eine der folgenden Verlängerungsmethoden:

Wenn der Wert des authenticator-Parameters standalone, webroot, apache, nginx, dns-route53 oder ein anderer Wert ist, der nicht manual 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 verlängert werden sollen.

- oder -

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

  1. Bei dieser Methode musst du TXT-Einträge 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 unter How to use Linux Screen (So verwendest du Linux Screen) auf der Linuxize-Website.
    Gib den folgenden Befehl ein, um eine Screen-Sitzung zu starten:

    screen -S letsencrypt
  2. Führe den folgenden Befehl aus und suche nach dem Domains-Parameterwert. Ersetze DOMAIN durch den primären Domainnamen des 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 dass das ursprüngliche Zertifikat verlängert wird.

    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-Einträgen zu den DNS-Einträgen für deine Domain. Let's Encrypt gibt einen oder mehrere TXT-Einträge aus, die du zur Überprüfung verwenden musst.

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

  6. Um dich zu vergewissern, 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 einem Jahr