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.

Pagespeed on AWS

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:

WordPress on AWS

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.