SSL Zertifikate mit Let’s Encrypt für iPhone, Android & Co.

Seit einiger Zeit gibt es speziell mit iOS vermehrt Probleme in Verbindung mit selbstsignierten SSL Zertifikaten und Active Sync. Hintergrund sind Anpassungen seitens Apple, durch die solche Zertifikate nicht mehr einfach bestätigt werden können. Es gibt Mittel und Wege diese Zertifikate auf das iPhone zu bringen, allerdings benötigt man dazu im schlimmsten Falle einen Mac, den wohl nicht jeder iPhone Benutzer besitzt.

Aber es gibt eine relativ einfache Lösung in Tobit David, die ich im folgenden vorstellen möchte.

Allgemeines

Mit Rollout 288 wurde die Let’s Encrypt Anbindung implementiert und mit Rollout 296/297 weiter verbessert (mehrere Domains und CNAME DNS Einträge möglich).

Let’s Encrypt ist ein kostenloser Dienst im Internet, über den automatisiert valide SSL Zertifikate ausgestellt werden können, die für 90 Tage gültig sind.

Der Zertifikats-Anforderungsprozess funktioniert indem ein Client eine Anfrage an den Let’s Encrpyt Server stellt und diesem die gewünschte Domain und eine E-Mailadresse (wird lediglich für Erinnerungsmails verwendet) übergibt.
Der Client erhält vom Dienst eine sog. Challenge, eine Art einmaliger Schlüssel.

Der Let’s Encrypt Dienst versucht im Anschluss über die ihm übergebene Domain eine Verbindung über Port 80 zum Client herzustellen und fordert ihn auf, den Schlüssel zu nennen.
Ist dies erfolgreich, wurde die übergebene Domain damit validiert und der Dienst erzeugt ein Zertifikat und übergibt es an den Client.

Nach 60 Tagen beginnt der Erneuerungsprozess.
Ab diesem Zeitpunkt kann der Client versuchen, das Zertifikat zu erneuern. Hierfür hat er maximal 30 Tage Zeit.
90 Tage nach Ausstellung verfällt das Zertifikat und muss neu beantragt werden.

Sofern im Erneuerungszeitraum (letzte 30 Tage) keine Erneuerung stattfindet, sendet der Let’s Encrypt Dienst 20, 10 und einen Tag vor Ablauf des Zertifikates eine Erinnerungsemail an die übergebene E-Mailadresse.

Auf der Webseite des Dienstes findet man eine Reihe an Clientimplementierungen des sog. ACME Standards. Für Linux ist Certbot die erste Wahl.


Voraussetzungen für die Anforderung und Nutzung in David

Voraussetzung für die Nutzung des Let’s Encrpyt Dienstes in David ist ein laufendes sitecare Abo.

Damit der Prozess fehlerfrei durchlaufen kann, muss der Let’s Encrypt Dienst die Webbox über Port 80 erreichen können (nicht 443 oder irgendein anderer Port, dies ist unabhängig von der Nutzung der Webbox immer Port 80!).
Die „Verbindungen testen“ Funktion im David Administrator kann hier hilfreich sein um Probleme ausfindig zu machen, ebenso der Kommandozeilenbefehl „netstat -ano | find „:80“ der anzeigt, welche ProzessID den Port 80 gebunden hat (im Taskmanager abgleichen).
Hier gilt es die Windows Firewall und im Router Firewall und NAT Einstellungen zu prüfen.

Theoretisch muss man den Port 80 nur für den Zeitraum der Anforderung und Erneuerung freischalten. Da man an die Erneuerung automatisch erinnert wird, kann man zum entsprechenden Zeitpunkt den Port freischalten, die Webbox neu starten, prüfen ob das/die Zertifikat(e) erneuert wurden und den Port wieder schließen. Alternativ kann man in den Active Sync Einstellungen in der Webbox Konfiguration die Option aktivieren, dass nur SSL Verbindungen zugelassen sind.

Natürlich muss auch die angegebene Domain auf die eigene IP Adresse zeigen. Es muss also ein entsprechender DNS Eintrag beim Provider gesetzt werden. Hierfür gibt es verschiedene Möglichkeiten, folgende die gängigen und einfachsten Möglichkeiten:

Erst mit der Erweiterung in Rollout 296/297 können Domains verwendet werden, die auf CNAME Records zeigen.

Zu beachten ist auch, dass man die Verbindung zur Webbox oder im Active Sync Account über die angegebene Domain herstellen muss, da sonst der aufgerufene Domainname / Serveradresse nicht zum Zertifikat passt.


Zertifikatsanforderung im David Administrator

Im David Administrator unter TLS-Verschlüsselung kann man die Let’s Encrypt Zertifikate beantragen.

Hier trägt man die gewünschte Domain (i.d.R. Third Level Domain, also z.B. intern.domain.de) und die E-Mailadresse für die Erinnerung ein, wählt die gewünschten Dienste aus für die das Zertifikat verwendet werden soll und klickt auf „Zertifikat anfordern“.

Während dem Anforderungsprozess (dauert nur wenige Sekunden) werden verschiedene Status- und ggf. Fehlermeldungen angezeigt.

Dieser Vorgang kann für verschiedene Domains beliebig oft wiederholt werden (seit Rollout 296).


Verwaltung der Zertifikate im David Administrator

Im David Administrator unter TLS-Verschlüsselung → TLS-Zertifikate hat man seit dem Rollout 296 eine Übersicht aller ausgestellten Zertifikate.

Die oberen vier Einträge beziehen sich auf die klassischen Zertifikate die direkt bei den Diensten Webbox, Mail Access Server und Postman hinterlegt sind (im jeweiligen Code Verzeichnis als .pem Datei).

Wie oben erwähnt und wie im Screenshot zu sehen, kann man seit dem Rollout 296 Zertifikate für beliebig viele Domains anfordern oder auch anderweitig gekaufte Zertifikate importieren.
Die hier gelisteten Zertifikate kann man beliebig den Diensten Webbox, Mail Access Server, Postman (Senden) und Postman (Empfangen) zuordnen.

Hierbei gibt es zwei Dinge zu beachten:

  1. Wenn es zwei Zertifikate für die gleiche Domain gibt, z.B. eines im ersten Eintrag (david Webbox) und eines als Let’s Encrypt Eintrag, und beide Zertifikate dem gleichen Dienst zugewiesen sind, wird immer das zuerst gefundene ausgeliefert.
  2. Wenn eine Anfrage über eine Domain an einen der Dienste gestellt wird, für die es kein Zertifikat gibt, wird immer das zuerst gefundene ausgeliefert.

Dies kann zu Problemen führen, wenn man „weiter oben“ in der Liste ein Zertifikat hat, welches schon abgelaufen ist. In diesem Falle würde ein ungültiges Zertifikat ausgeliefert.

Da man die Zuweisung hinter dem oberen Webbox Eintrag nicht aufheben kann, müsste man im vorstehenden Beispiel das dahinterliegende Zertifikat entfernen, damit das korrekte Zertifikat ausgeliefert wird.


Ich finde Tobit hat hier ganze Arbeit geleistet und die (Let’s Encrypt) Zertifikatsverwaltung sehr solide implementiert. Durch die Verbesserungen im Rollout 296/297 und die damit verbundene Möglichkeit mehrere Zertifikate für verschiedene Domains zu nutzen, sollte man die meisten Anforderungsszenarien abbilden können.

Und dank der gültigen Let’s Encrypt Zertifikate muss man sich nicht mehr mit Fehlermeldungen und fehlender Vertrauenswürdigkeit in den Endgeräten und -Clients herumschlagen.

Veröffentlicht in Tipp

3 Gedanken zu „SSL Zertifikate mit Let’s Encrypt für iPhone, Android & Co.

  1. Zu anfangs ging es auch mit Dyndns Anbieter was leider nicht mehr geht bekomme dann Anbieter wird nicht unterstützt. Schade eigentlich. Habe einige Schulen die das vorher genutzt haben.

  2. Hi zusammen,

    Danke für den tollen Artikel. TOP.
    Ich habe das Zertifikat heute gewechselt und das Let´s Encrypt eingebunden. Hat mit Dyndns-Anbieter prima geklappt.
    Neuste Version David3 25 „12.00a – 3255“.

    Hast Du vielleicht kein SiteCare bei Tobit gebucht oder Port 80 blockiert ?

  3. Ich kann auch bestätigen, dass es mit dynamic DNS Diensten klappt. Ggf. aber nicht mit jedem? Ein guter, kostenloser, deutscher Anbieter ist SPDyn von Securepoint. Sehe aber gerade, dass das nur noch über Securepoint Reseller geht (wäre also über uns möglich ? ).

    Was man sonst mal probieren könnte: CName Record auf die eigene Domain legen (z.B. intern.domain.tld) und das Zertifikat auf diese ausstellen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert