Auf Amazon Webservices ist es möglich eine WordPress Instanz kostenlos zu betreiben. Dazu gibt es ein prima Image von Bitnami mit dem die t2.micro Instanz gestartet wird. Der Vorteil der speziellen Bitnami Installation ist die ausgetüftelte Performance. Hier hat man sich wirklich Mühe gegeben und ordentliche Settings gewählt. Die Default Installation erreicht sofort wie sie ist PageSpeed Grade A!. Für kleine Projekte eine super Lösung. Nun fehlt nur noch eine einzige Sache zum Glück und das ist ein SSL Zertifikat. Mit LetsEncrypt ist das nun kostenlos möglich. Es gibt auch einige Anleitungen im Netz wie das ganze geht, aber hier kommen zwei spezielle Dinge zusammen die etwas Erläuterung benötigen. Beim Bitnami WordPress Image für die EC2 ist si einiges anders, weshalb die Standard Howtos nicht unbedingt weiterhelfen. Hier kommt wie es geht.
Voraussetzungen
WordPress auf AWS
Als erstes benötigt ihr eine Standard Installation von WordPress wie es der Bitnami Guide erklärt. Führt das so aus wie beschrieben, vergesst auf keinen Fall das Keypair für die Maschine zu speichern, das benötigt ihr beim SSH Zugriff:
Domainname
Als nächstes benötigt ihr natürlich einen Domainnamen für die WordPress Instanz. Hier steht euch der Weg frei, ihr könnte auf Amazon Route 53 eine Domain kostenpflichtig registrieren aber auch von jedem anderen Provider eine Domain auf die IP Adresse konfigurieren. Hierzu müsst ihr noch das Thema zur Elastic IP studieren, diese benötigt ihr um den Zugriff zu steuern.
Domain zu ECS Instanz hinzufügen
Wenn alles wie gewünscht funktioniert und ihr WordPress auch mit der Domain aufrufen könnt ist es nun möglich LetsEcnrypt und SSL zu aktivieren.
LetsEncrypt
Nun kommt der eigentliche Teil, mit Letsencrypt, dieser ist eigentlich recht einfach, man muss aber die spezifischen Pfade der Konfigurationsdateien beachten die beim Bitnami WordPress anders sind, es gibt zum Bsp. kein /etc/httpd Verzeichniss.
Verbindet euch via SSH mit der Instanz. Ihr befindet euch im Ordner /home/bitnami. Merken!
Im Guide hier ersetzt EUREDOMAIN jeweils mit der echten die ihr benutzt!
CertBot
1. Als erstes den LetsEncrypt Certbot installieren und ausführbar machen:
$ wget https://dl.eff.org/certbot-auto
$ chmod a+x certbot-auto
2. SSL Zertifikat erstellen:
$ sudo ./certbot-auto --debug -v --server https://acme-v01.api.letsencrypt.org/directory certonly -d EUREDOMAIN
Vor allem beim ersten Aufruf nicht wundern, es werden automatisch einige Python Module usw. benötigt. Ebenfalls wird eure Mail Adresse abgefragt. Benutzt die echte, ihr bekommt auch Hinweise falls später einmal eine automatische Erneuerung ausbleibt!
Des weiteren werdet ihr nun auch gefragt ob ihr die Prüfung über einen eigenen HTTP Server oder über den bereits aktiven Apache machen wollt. Wählt den aktiven Apache aus! Bei Frage nach dem web Root Verzeichnis des Webservers ist die Angabe des folgenden Verzeichnis notwendig, hier liegt die WP Installation:
/opt/bitnami/apps/wordpress/htdocs
Der Certbot wird nun die Zertifikate erstellen und legt diese in diesem Ordner ab:
/etc/letsencrypt/live/EUREDOMAIN
3. Apache anpassen
Nun ist es nur noch ein kleiner Schritt, dem Bitnami Apache müssen noch die Keys mitgeteilt werden. Dazu entweder mit vi,nano oder mcedit die folgende Datei öffnen:
/opt/bitnami/apache2/conf/bitnami/bitnami.conf
Hier findet ihr gleich ca. bei Zeile 46 die beiden Einstellungen für die SSL Zertifikate, diese passt ihr wie folgt an:
SSLCertificateFile „/etc/letsencrypt/live/EUREDOMAIN/cert.pem“
SSLCertificateKeyFile „/etc/letsencrypt/live/EUREDOMAIN/privkey.pem“
Fertig. Nun nur noch den Apache restarten:
$ sudo /opt/bitnami/ctlscript.sh restart apache
Nun solltet ihr via HTTPS und SSL Zugriff auf eure WP Instanz haben und das grüne SSL Symbol sollte in der Adresszeile aufleuchten.
4. Automatischer Erneuerung
Damit das SSL Zertifikat auch regelmäßig erneuer wird fügt den CertBot noch der crontab hinzu:
$ sudo -i
crontab anpassen:
$ crontab -e
Hier wird VIM per default benutzt, also folgt der Anleitung:
VIM: i drücken im in den “interactive” mode zu wechseln und die Datei zu bearbeiten.
Die folgende Zeile hinzufügen um den CertBot einmal pro Tag laufen zu lassen:
0 1 * * * /home/bitnami/certbot-auto renew
VIM: esc drücken um den interactive mode zu verlassen.
VIM: Eingabe :wq zum speichern und beenden von vim.
Das war schon alles!
Update
Ich habe festgestellt das es nicht alleine ausreicht den certbot regelmäßig laufen zu lassen um das Zertifikat zu verlängern. Beim Image ist kein Apache Neustart vorgesehen, somit würde zwar das Zertifikat erneuert, aber nicht in die Apache Umgebung übernommen. Somit ist es also notwendig auch den Apache regelmäßig mal neu zu starten um auch das neuere Zertifikat zu laden. Das geht identisch wie beim Cronjob für den Certbot.
In die Crontab danach mit einfügen:
0 1 * * * /opt/bitnami/ctlscript.sh restart apache
Fragen
Ihr kommt nicht weiter, benutzt unser Forum oder meldet euch auf unserem Discord.
Hallo,
leider klappt es mit dieser Anleitung nicht, ich habe in deinem Discord Chat etwas geschrieben im WordPress Channel, evtl kannst du mal rein schauen wenn du Zeit hast. Danke.
Melde dich mal via Whatsapp an +493629812637