letsencrypt AWS http challenge

Ich hatte das Problem, dass beim Erneuern des Letsencrypt Zertifikates per Cronjob unter Amazon Linux 2

certbot renew --post-hook "systemctl reload httpd"  >> /var/log/certbot.log 2>&1

das SSL Zertifikat nicht erneuert wurde, sondern folgende Fehlermeldung auftrat:

Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',)
Attempting to renew cert (foo.de) from /etc/letsencrypt/renewal/foo.conf produced an unexpected error: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',). Skipping.

Ich habe dann in Konfiguration geschaut: /etc/letsencrypt/renewal/foo.conf und dort den Authentificator geändert auf apache und den Authentificator Challenge auf HTTP (über den Webserver).

# Options used in the renewal process
[renewalparams]
account = xxx
server = https://acme-v02.api.letsencrypt.org/directory
authenticator = apache
installer = apache
pref_challs = http-01,

Danach war wichtig noch den Port 80 in der Security Group freizuschalten für die Authentifizierung und nach erneuter Eingabe des Befehls

certbot renew

wurde das Zertifikat wurde erfolgreich erneuert.

Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator apache, Installer apache
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for foo.de
Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/foo.de/fullchain.pem

AWS: verifizieren einer Email Adresse in SES ohne Zugriff auf das Postfach

Um bei Amazon SES Email verschicken zu können, muss man die E-Mail Adresse erst verifizieren. Dies ist ein Problem, wenn man zwar Zugriff auf die Domain hat, aber keinen Mail-Server eingerichtet hat.

Um das Problem zu umgehen, verifiziert man erst die Domain in SES und richtet dann unter Configure Email Receiving die zu verifierende E-Mail Adresse ein und verbindet diese mit einem SNS Topic. Danach kann man eine Subscription einrichten auf das SNS Topic via Email und sich so die Verifikations-Email weiterleiten lassen auf ein vorhandenes Postfach.

Projekt: baby-taschenrechner.de

Das gerade fertiggestellt Projekt baby-taschenrechner.de beschäftigt sich mit den Fragestellungen rund um die Entwicklung des eigenen Kindes:

  • Wie groß wird mein Kind werden in x-Jahren
  • Wie schwer wird mein Kind in x-Jahren
  • Ist mein Kind zu schwer/zu dünn
  • Welche Kleidergröße wird es wann tragen?

Die Webseite soll Eltern dabei helfen herauszufinden, wann sie welche Kleidergröße kaufen müssen, um im nahenden Winter/Sommer das passende zu Hause zu haben.

Eltern können so einschätzne, ob das Kind zu dünn oder zu dick ist  für ihr Alter/Größe/Gewicht-Verhältnis.

Für die Realiserung wurden folgende Technologien verwendet:

Symfony 3, Docker, MySQL, PHP, GIT, Google Material Design, Amazon AWS

ELK Stack auf Amazon EC2 installieren

Um den ELK Stack, bestehend aus:

  • Logstash
  • Elasticsearch
  • Kibana

auf Amazon AWS zum Testen auf einer einzigen Amazon EC2 Instanz zu installieren, kann man wie folgt vorgehen:

Man fährt eine EC2 Instanz hoch, die nicht zu klein ist, was den Ram anbelangt, mindestens eine m4.large mit 8GB Ram und 2 Prozessoren, da Elasticsearch schon gehobene Ansprüche an die Speicher stellt und auch Logstash sehr ressourcenhungrig ist. Als Betriebsystem habe ich Ubuntu-16 gewählt (ami-1e339e71).

Dann kann man eine Elastic-IP auf die Instanz legen, damit man die Instanzen unkompliziert austauschen kann und man trotzdem die IP weiter behält.

Security Groups weiterlesen…

Projekt: Elasticsearch für XT-Commerce Shop Suche

Das letzte Projekt war sehr spannend, es handelte sich um eine Erweiterung des PHP Shop-Systems namens XT-Commerce bzw. des Derivats SEO-Commerce um eine Suche aktuellem Standards für Zeedee Berlin.

Elasticsearch wurde auf einer eigene Amatzon MWS EC2 Instanz gehostet mit 1GB Ram und 1 CPU (sehr kostengünstig).

Die folgende Funktionalität kann ganz einfach wieder deaktiviert werden an zentraler Stelle, wenn es Probleme mit Elasticsearch gibt und die alte MySQL Suche tritt wieder in Kraft.

1. Autocomplete / Suggest Funktion beim Befüllen der Suche

Beim Eintippen des Suchwortes werden schon Vorschläge gegeben im Millisekundenbereich. Dadurch kann der Kunde viel Zeit sparen und bei der Rechtschreibung wird auch geholfen. suggest_zeedee

weiterlesen…

Analyse: Amazon EC2 als günstige Root Server Alternative zur Entwicklung

Auf der Suche nach einem günstigem Root-Server zum Entwickeln und betreiben von meinen Webseiten bin ich über Amazon EC2 gestolpert und will im folgenden berechnen, ob sich der Betrieb finanziell lohnt im Vergleich zu einem normalen Root Server.

Die Amazon EC2 Preistabelle findet man hier.

Update:

Noch billiger sind die Reserved Instances, bei denen man für einen bestimmten Zeitraum (1 oder 3 Jahre) eine Instanz zu einem festen Preis mietet.

So bezhalt man z.B. für eine Linux Nano Instanz mit Sitz in Frankfurt jährlich nur 40$ oder für 3 Jahr 79$. Unschlagbar billig.

Das klingt erstmal günstig, aber richtig teuer wird Amazon, wenn es um große Systeme mit viel Traffic geht, da ist es günstiger selber ein Datacenter zu betreiben.

Achtung: EC2 Micro Instance ist ein Jahr kostenlos für Neukunden.

Amazon rechnet im Gegensatz zum normalen Root Server Anbietern in Stunden ab, da es sich um einen elastischen Cloud Service handelt. Es sollte bei der Rechnung immer im Hinterkopf gehalten werden, dass EC2 den Riesenvorteil einfach zu skalieren, indem man neue Instanzen dazuschaltet bei Bedarf.

Ein Rechenbeispiel für einen EC2 Entwicklungserver mit Standort Europa (Irland):

Preisvarianten für eine Micro Instance, die besonders günstig, aber nicht besonders leistungsfähig sind mit 613 MB RAM, aber vollkommen ausreichend für den Betrieb kleinerer Webseiten und als Entwicklungserver:

1. On-Demand Instances: 0,020$ pro Stunde

2. Reserved Instances mit geringer Auslastung: 0,015$ pro Stunde + $23*

3. Reserved Instances mit mittlerer Auslastung: 0,01$ pro Stunde + $54*

4. Reserved Instances mit hoher Auslastung: 0,008$ pro Stunde + $62*

weiterlesen…