AWS Lightsail und Let’s Encrypt SSL Zertifikat

Matthias Suttner

Matthias Suttner, 21. August 2019

AWS Lightsail und Let’s Encrypt SSL Zertifikat

Lesezeit: 4 Minuten

Erstellen und Installieren eines Let’s-Encrypt-SSL-Zertifikates für Deine WordPress Installation

Einführung in SSL und Zertifikate

Vorneweg: SSL steht für „Secure-Sockets-Layer“ und sorgt dafür, dass die Kommunikation von Daten verschlüsselt abläuft. Zu dem Thema SSL findest du aber sehr viel in den Suchmaschinen, daher wollen wir hier nicht weiter darauf eingehen. Der Grund für ein SSL-Zertifikat ist einfach, dass deine Webseite über https erreichbar ist und das in der heutigen Zeit aus Sicherheitsgründen der Nutzer sehr wichtig ist. Ebenso ist es für die SEO-Optimierung deiner Webseite aber essentiell wichtig.

Hierbei hilft uns Let’s Encrypt, da es eine freie, automatisierte und offene Zertifizierungsstelle und wir darüber ein SSL-Zertifikat erhalten.

Dieser Artikel begleitet dich zum einen durch den Prozess der Erstellung eines Let’s Encrypt Zertifikates für deine Domain und zum anderen durch die Installation und Konfiguration für deine WordPress-Webseite auf AWS Lightsail.

Voraussetzungen für Einrichtung SSL

Dieser Artikel setzt folgendes voraus:

  • Du hast deine WordPress-Webseite auf einer AWS Lightsail Instanz installiert und diese ist über eine öffentliche Domain erreichbar
  • Das setzt natürlich voraus, dass du eine eigene Domain besitzt und diese auf die öffentliche IP deiner WordPress-Webseite zeigt
  • Du hast die erforderlichen Zugangsdaten für deine AWS Lightsail Instanz

Vorgehen für SSL-Zertifikat

Zuallererst: Es gibt verschiedene und unter Umständen auch einfachere Wege, um deine Webseite über https erreichbar zu machen. Das folgende Vorgehen hat bei uns jedoch immer funktioniert, weswegen wir dir genau diesen Ansatz in dem Artikel zeigen wollen. Wenn du jedoch Anmerkungen und Verbesserungsvorschläge hast, dann bitte kurz kommentieren und wir melden uns schnellstmöglich bei dir!

Schritt 1 – Installieren des Lego-Clients

Der Lego-Client vereinfacht den Prozess der SSL-Zertifikats-Erstellung und bedarf folgender Schritte:

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 - 
tar xf lego_vA.B.C_linux_amd64.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

Zum Zeitpunkt der Erstellung des Artikels, war es die folgende Version: lego_v3.0.2_linux_amd64.tar.gz

Mit diesen Schritten wird der Client in einen temporären Ordner heruntergeladen, extrahiert und in den passenden Ordner verschoben.

Schritt 2: Erstellung des Let’s Encrypt Zertifikates für deine Domain

Mit den kommenden Schritten erstellst du dein Zertifikat für deine Domains.

  • Abschalten aller Bitnami-Services:
sudo /opt/bitnami/ctlscript.sh stop
  • Anfragen eines neuen Zertifikates für deine Domain – mit und ohne dem www-Präfix. ACHTUNG: Bitte denke daran, dass du den DOMAIN- sowie EMAIL-ADRESSE-Platzhalter mit deinen Daten ersetzt:
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADRESSE" --domains="DOMAIN" --domains="www.DOMAIN" --path="/opt/bitnami/letsencrypt" run
Auf unserer Seite ergibt sich damit der folgende Code:
sudo /opt/bitnami/letsencrypt/lego --tls --email="info@goldenwebage.de" --domains="goldenwebage.de" --domains="www.goldenwebage.de" --path="/opt/bitnami/letsencrypt" run
  • Zustimmung der Service-Bedingungen

Sobald das Zertifikat erstellt ist, ist es im folgenden Ordner ersichtlich: /opt/bitnami/letsencrypt/certificates.

Schritt 3: Konfiguration deines Web-Servers mit dem Let’s Encrypt Zertifikat

Im nächsten Schritt teilst du dem Web-Server das neue Zertifikat mit.

  • Verlinke das neue SSL-Zertifikat und die Schlüsseldatei an die richtigen Stellen deines Webservers (je nach Konfiguration des Servers). Denke bitte wieder daran, den DOMAIN-Platzhalter mit Deiner tatsächlichen Domain zu ersetzen. TIP: Die aktuelle Konfiguration findest du mit dem folgenden Befehl heraus: sudo /opt/bitnami/ctlscript.sh status.
Webserver – Apache:
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 chown root:root /opt/bitnami/apache2/conf/server*
sudo chmod 600 /opt/bitnami/apache2/conf/server*
Webserver – NGINX
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 chown root:root /opt/bitnami/nginx/conf/server*
sudo chmod 600 /opt/bitnami/nginx/conf/server*
  • Starten aller Bitnami-Services
sudo /opt/bitnami/ctlscript.sh start

Schritt 4: Testen der gesamten Konfiguration

Wenn Du alle vorherigen Schritte erledigt hast, kannst du zum Test deine Webseite in einem Browser mit https öffnen, z.B. https://DOMAIN (ersetze hier ebenfalls den DOMAIN-Platzhalter mit deine korrekten Domain).

Zum einen sollte deine Webseite so erreichbar sein und zum zweiten befindet sich jetzt ein Schloss-Symbol neben der Adressleiste in deinem Browser. Mit einem Doppelklick darauf findest du alle Details zu dem Let’s Encrypt Zertifikat.

Schritt 5: Erneuern des SSL-Zertifikates

Ein Let’s Encrypt Zertifikat ist immer nur 90 Tage gültig, weswegen es regelmäßig erneuert werden muss. Dafür loggst du dich erneut bei einer AWS-Lightsail-Insatz ein und führst den folgenden Code zur Verlängerung deines Zertifikates aus (Beide Platzhalter musst du erneut mit deinen Werten ersetzen):

sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADRESSE" --domains="DOMAIN" --domains="www.DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start
Konkret schaut der zweite Befehl bei unserer Webseite so aus:
sudo /opt/bitnami/letsencrypt/lego --tls --email="info@goldenwebage.de" --domains="goldenwebage.de" --domains="www.goldenwebage.de" --path="/opt/bitnami/letsencrypt" renew --days 90

Um diesen Schritt nicht alle 90 Tage manuell ausführen zu müssen, kannst du auch einen Cronjob dafür einrichten. Der Cronjob sorgt dafür, dass die Befehle in einem regelmäßigen Abstand automatisch ausgeführt werden. Die Einrichtung des Cronjobs erfolgt mit den folgenden Schritten:

  • Erstelle ein Skript, welches anschließend die Befehle enthält und ausführt
sudo nano /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
  • Füge den folgenden Inhalt in das Skript ein (Platzhalter müssen erneut mit deinen Werten ersetzt werden)
#!/bin/bash

sudo /opt/bitnami/ctlscript.sh stop apache
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADRESSE" --domains="DOMAIN" --domains="www.DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start apache
  • Anschließend musst du dafür sorgen, dass das Skript auch vom System ausgeführt werden kann:
sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
  • Anschließend öffnest du den Crontab-Editor, um den Cronjob einrichten zu können:
sudo crontab -e
  • Zu guter letzte schreibst du die folgende Zeile in die Datei, um das Skript vom System regelmäßig automatisch ausführen zu lassen:
0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null

Mit diesem Artikel hast du jetzt dein SSL-Zertifikat erstellt, auf deiner Webseite konfiguriert und mit dem Cronjob dafür gesorgt, dass es sich regelmäßig automatisch erneuert. Damit dein WordPress-Blog noch in Zukunft auch immer über die sichere https-URL erreichbar ist, ergeben sich noch die beiden Aufgaben für dich:

  • Umstellung deiner WordPress-Webseite im Admin-Bereich auf SSL
  • Ersetzen deiner http-Links mit den https-Links in der WordPress-Datenbank
  • Weiterleitung über die htaccess auf deine https://www.DOMAIN

Wir hoffen, dass wir dir mit dem Artikel helfen konnten und deine Webseite nun mit Verschlüsselung erreichbar ist.

Goldene Grüße,
Matthias und dein Team von Golden Web Age

Weiterführende Links zu dem Thema:
Lego-Dokumentation: https://github.com/go-acme/lego/blob/master/README.md
Bitnami-Dokumentation: https://docs.bitnami.com/aws/how-to/generate-install-lets-encrypt-ssl/
AWS-Dokumentation: https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-using-lets-encrypt-certificates-with-wordpress
Let’s Encrypt-Dokumentation: https://letsencrypt.org/docs/

Matthias Suttner

Matthias Suttner

Matthias ist unser BI & Tracking Spezialist. Mit seiner Erfahrung konnte er schon vielfach Zusammenhänge in Daten erkennen und Umsätze von diversen Unternehmen damit enorm steigern.

Sie benötigen Unterstüzung für ein Projekt?
Jetzt kostenlose Erstberatung buchen