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

Lesedauer: 8 Minute
0

Ich möchte ein Wildcard-SSL-Zertifikat für meine Website in einer Amazon Lightsail-Instanz mit einem Bitnami-Stack installieren.

Kurzbeschreibung

Informationen zur Installation eines anderen Instanz-Blueprints oder eines Standardzertifikats finden Sie in den folgenden Artikeln des AWS Knowledge Center:

Behebung

Die Schritte zur Installation eines Let's Encrypt SSL-Wildcard-Zertifikats auf einer von Bitnami gehosteten Lightsail-Instance hängen vom DNS-Anbieter ab, den Ihre Domain verwendet. Prüfen Sie, ob Ihr DNS-Anbieter auf der Lego-Website unter DNS-Anbieter aufgeführt ist. Wählen Sie dann die entsprechende Methode aus, die Sie verwenden möchten:

  • Wenn Ihre Domain einen der aufgelisteten DNS-Anbieter verwendet, verwenden Sie das Lego-Tool, das Bitnami bereitstellt.
  • Wenn Ihre Domain keinen der aufgelisteten DNS-Anbieter verwendet, verwenden Sie das Certbot-Paket.

**Hinweis:**Dateipfade können sich ändern, je nachdem, ob Ihr Bitnami-Stack native Linux-Systempakete (Ansatz A) oder eine eigenständige Installation (Ansatz B) verwendet. Die neuesten Bitnami WordPress-Blueprints sind nur für Approach A verfügbar.

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."

Lego-Werkzeug

Bitnami stellt das bncert-Tool und das Lego-Tool zur Verfügung. Das Lego-Tool unterstützt die Erstellung von Wildcard-SSL-Zertifikaten. Das bncert-Tool unterstützt nicht die Erstellung von Wildcard-SSL-Zertifikaten.

**Hinweis:**Im folgenden Beispiel sind Amazon Route 53 und Amazon Lightsail die DNS-Anbieter.

Gehen Sie wie folgt vor, um mit dem Lego-Tool ein SSL-Zertifikat mit Platzhalterzeichen von Let's Encrypt zu installieren:

  1. Erstellen Sie einen AWS Identity and Access Management (IAM)-Benutzer mit programmatischem Zugriff. Um zu ermitteln, welche IAM-Benutzerberechtigungen Lego benötigt, um die DNS-Herausforderung abzuschließen, schauen Sie sich die Beispiele für IAM-Richtlinien auf der Lego-Website an.

  2. Um die Datei /root/.aws/credentials im Nano-Editor zu öffnen, führen Sie den folgenden Befehl aus:

    sudo mkdir /root/.aws
    sudo nano /root/.aws/credentials
  3. Geben Sie die folgenden Zeilen in die Anmeldeinformationsdatei ein:

    [default]
    aws_access_key_id = AKIA************E
    aws_secret_access_key = 1yop**************************l
    region = us-east-1

    **Hinweis:**Ersetzen Sie aws\ _access\ _key\ _id und aws\ _secret\ _access\ _key durch Ihre Werte. Ersetzen Sie us-east-1 durch die AWS-Region Ihrer Lightsail-Instance.

  4. Um die Datei zu speichern, drücken Sie Strg + X, dann Y und dann Enter.

  5. Wenn deine Bitnami-Instanz das Verzeichnis /opt/bitnami/letsencrypt/ nicht enthält, führe den folgenden Befehl aus, um den Lego-Client manuell zu 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 xzf lego.tar.gz
    sudo mkdir -p /opt/bitnami/letsencrypt
    sudo mv lego /opt/bitnami/letsencrypt/lego
  6. Um ein Let's Encrypt-Zertifikat mit Platzhalterzeichen auf dem Server zu erstellen, führen Sie je nach Servertyp den folgenden Befehl aus:
    Route 53 Nameserver:

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

    Lightsail-Nameserver:

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

    **Hinweis:**Ersetzen Sie EMAIL-ADDRESS durch die E-Mail-Adresse, an die Sie Zertifikatsaktualisierungen erhalten möchten. Ersetzen Sie DOMAIN durch Ihre Domain.
    Das SSL-Zertifikat und der private Schlüssel werden an den folgenden Speicherorten generiert: /opt/bitnami/LetsEncrypt/certificates/domain.crt oder /opt/bitnami/letsencrypt/certificates/DOMAIN.key.

  7. Führen Sie den folgenden Befehl aus, um die Bitnami-Stack-Dienste zu beenden:

    sudo /opt/bitnami/ctlscript.sh stop
  8. Verknüpfen Sie das SSL-Zertifikat und die Zertifikatsschlüsseldatei mit den Speicherorten, die Ihr Webserver derzeit liest, basierend auf Ihrem Server und Ihrer Vorgehensweise:
    Apache, Ansatz A

    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

    Apache, Ansatz B

    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

    NGINX, Ansatz A

    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

    NGINX, Ansatz B

    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

    **Hinweis:**Ersetzen Sie für die vorherigen Befehle DOMAIN durch Ihren Domainnamen.

  9. Führen Sie den folgenden Befehl aus, um die Bitnami-Stack-Dienste zu starten:

    sudo /opt/bitnami/ctlscript.sh start
  10. Um die Zertifikatserneuerung zu automatisieren, führen Sie den folgenden Befehl aus, um den Crontab-Editor zu öffnen:

sudo crontab -e -u bitnami

**Hinweis:**Let's Encrypt-Zertifikate sind 90 Tage gültig. Geben Sie die folgende Zeile in die Crontab-Datei ein und speichern Sie dann die Datei:
Apache

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

NGINX

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/nginx/sbin/nginx -c /opt/bitnami/nginx/conf/nginx.conf -s reload

**Hinweis:**Ersetzen Sie EMAIL-ADDRESS, DOMAIN und DNS durch Ihre Werte. Richten Sie die HTTPS-Umleitung ein. Weitere Informationen finden Sie auf der Bitnami-Website unter HTTPS-Umleitung mit Apache erzwingen und HTTPS-Umleitung mit NGINX erzwingen.

Certbot-Paket

Voraussetzungen:

  • Installieren Sie Certbot.
  • Ermitteln Sie Ihre Linux-Distribution. Für von Bitnami gehostete Instanzen ist die Linux-Distribution entweder Debian oder Ubuntu. Führen Sie den folgenden Befehl aus, um Ihre Linux-Distribution zu bestätigen:
    cat /etc/os-release | grep -i ^id
    **Hinweis:**Diese Methode unterstützt keine automatische Zertifikatsverlängerung.

Gehen Sie wie folgt vor, um das Certbot-Paket zur Installation eines Let's Encrypt SSL-Zertifikats mit Platzhaltern zu verwenden:

  1. Startet eine Linux GNU Screen-Sitzung. Da das Hinzufügen von TXT-Einträgen im DNS-Anbieter der Domain einige Zeit in Anspruch nimmt, kann es bei der Sitzung zu einem Timeout kommen. Es hat sich bewährt, die Befehle in Linux GNU Screen auszuführen, damit die Sitzung nicht unterbrochen wird. Führen Sie den folgenden Befehl aus, um eine Bildschirmsitzung zu starten:

    screen -S letsencrypt
  2. Führen Sie den folgenden Befehl aus, um den interaktiven Modus von Certbot zu starten:

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

    **Hinweis:**Ersetzen Sie example.com durch Ihren Wert.
    Wenn Sie eine Fehlermeldung wie „bash: certbot: command not found“ erhalten, müssen Sie möglicherweise /bin/snap zu Ihrer PATH-Umgebungsvariablen hinzufügen. Geben Sie zunächst „exit“ ein und drücken Sie die Eingabetaste. Oder drücken Sie Strg + D, um die Bildschirmsitzung zu beenden. Bearbeiten Sie dann /etc/environment und fügen Sie /snap/bin zur Liste hinzu. Starte dein System neu. Führen Sie den folgenden Befehl aus, um zu bestätigen, dass kein Fehler mehr vorliegt:

    $ certbot -h
  3. Kopieren Sie die TXT-Einträge, die Let's Encrypt bereitstellt. Let's Encrypt bietet entweder einen oder mehrere TXT-Einträge, die Sie zur Überprüfung verwenden müssen.

  4. Fügen Sie den bereitgestellten Datensatz in das DNS Ihrer Domain ein.
    Wichtig: Drücken Sie die Eingabetaste erst, wenn Sie bestätigt haben, dass der TXT-Eintrag an das Internet-DNS weitergegeben wird. Drücken Sie auch nicht Strg + D, da diese Aktion die Bildschirmsitzung beendet.

  5. Um zu bestätigen, dass der Datensatz weitergegeben wurde, suchen Sie auf der MxToolbox-Website unter DNS-Textsuche nach dem TXT-Eintrag:

    _acme-challenge.example.com

    **Hinweis:**Ersetzen Sie example.com durch Ihren Wert.
    Wenn Ihre TXT-Einträge weitergegeben werden, wird der TXT-Datensatzwert auf der Seite angezeigt. Kehren Sie zum vorherigen Bildschirm zurück und drücken Sie die Eingabetaste.

  6. Wenn Sie aus der Shell entfernt wurden, führen Sie den folgenden Befehl aus, um zur Shell zurückzukehren:

    Screen -r SESSIONID

    Hinweis:Führen Sie den Befehlscreen -ls aus, um die Sitzungs-ID abzurufen.

  7. (Optional) Wenn Sie dazu aufgefordert werden, wiederholen Sie die vorherigen Schritte, um einen weiteren TXT-Datensatz hinzuzufügen.
    **Hinweis:**Wenn Sie Route 53 für Ihren DNS-Anbieter verwenden, geben Sie einen TXT-Wert pro Zeile ein. Bearbeiten Sie den TXT-Datensatz und fügen Sie dann in einer neuen Zeile den TXT-Wert hinzu, den Certbot bereitstellt.

  8. Speichern Sie die Speicherorte des SSL-Zertifikats und der Schlüsseldatei. Nachdem das SSL-Zertifikat generiert wurde, erhalten Sie die Meldung „Zertifikat erfolgreich erhalten“.

  9. Um Ihren Webserver für die Verwendung des Zertifikats zu konfigurieren, führen Sie je nach Server und Vorgehensweise die folgenden Befehle aus:
    Apache, Ansatz A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    Apache, Ansatz B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX, Ansatz A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX, Ansatz B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    **Hinweis:**Ersetzen Sie für die vorherigen Befehle DOMAIN durch Ihren Domainnamen.

  10. Richten Sie die HTTPS-Umleitung ein. Weitere Informationen finden Sie auf der Bitnami-Website unter HTTPS-Umleitung mit Apache erzwingen und HTTPS-Umleitung mit NGINX erzwingen.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr