Die Sophos UTM 9.6 bietet nun auch die lang ersehnte Unterstützung für kostenlose Let’s Encrypt Zertifikate. Zwar unterstützt die UTM nur das ACMEv1 Protokoll und kann somit keine Wildcard Zertifikate anfordern, dafür können aber SAN-Zertifikate mit bis zu 100 DNS-Namen automatisch angefordert werden.
Kurzer Überblick zu Let’s Encrypt
Let’s Encrypt ist eine Zertifizierungsstelle (CA) die mittlerweile von nahezu jedem Gerät als vertrauenswürdig anerkannt wird. Ähnlich wie die bekannten CAs wie beispielsweise Thwate, Digicert und Comodo, akzeptieren also nahezu alle Browser, Clients und Geräte Zertifikate von Let’s Encrypt und zeigen keine Zertifikatswarnung wie “Diese Webseite ist unsicher” an.
Let’s Encrypt Zertifikate sind im Gegensatz zu den Zertifikaten anderer CAs kostenlos und können nahezu vollautomatisch angefordert und ausgestellt werden. Gerade SAN-Zertifikate mit mehreren Domain- und Hostnamen können bei den “alten Hasen” der CAs recht teuer werden. Zwar sind die Preise für Standard Zertifikate schon deutlich gesunken, allerdings zahlt man bei Thawte für ein domainvalidiertes SAN Zertifikat mit 2 Jahren Laufzeit immer noch 129 EUR. Zertifikate von anderen CA sind teilweise noch deutlich teurer.
Let’s Encrypt stellt ebenfalls domainvalidierte Zertifikate aus, allerdings immer nur mit einer Laufzeit von 3 Monaten. Wer also nicht manuell alle 3 Monate Zertifikate an Webservern und anderen Hosts tauschen möchte, muss sich hier Gedanken um die Automatisierung machen. Let’s Encrypt bietet dazu das Protokoll ACME (ja, es heißt wirklich so) an. Mit entsprechenden Clients die für nahezu jede Plattform zur Verfügung stehen, lassen sich automatisch Zertifikate anfordern und vor Ablauf erneuern. Die geringe Gültigkeit von 3 Monaten ist somit also auch kaum ein Problem. Mit der dem ACMEv2 Protokoll können sogar Wildcard Zertifikate angefordert werden. Hierfür ist allerdings eine Validierung via DNS nötig, dies macht die Automatisierung schwieriger. Zertifikate die mit dem ACMEv1 Protokoll angefordert werden, unterstützen neben der DNS Validierung auch die HTTP Validierung, dies lässt sich besonders gut automatisieren.
Let’s Encrypt stellt nur domainvalidierte Zertifikate aus, es muss also lediglich nachgewiesen werden, dass der Anforderer des Zertifikats Zugriff auf die entsprechende Domain hat. Extended Validation Zertifikate (grüner Balken im Browser) können nicht via Let’s Encrypt angefordert werden.
Let’s Encrypt bietet aktuell nur “Webserver” Zertifikate an, andere Zertifikatstypen wie S/MIME oder Code Signing Zertifikate können nicht angefordert werden.
Für alle Arten von Webservices lassen sich Let’s Encrypt Zertifikate allerdings wunderbar verwenden. Bevor irgendein Dienst im Internet per Plain-HTTP veröffentlicht wird (Mail, Extranet, Intranet, Benutzerportal, usw.), kann also mit wenig Aufwand und Kosten auch eine TLS-Verschlüsselte Kommunikation mittels Let’s Encrypt Zertifikate umgesetzt werden.
Sophos UTM 9.6 und Let’s Encrypt
Hinweis: Wie bei jeder anderen öffentlichen CA mit Domain Validierung auch, können keine Zertifikate mit nicht öffentlich auflösbaren DNS-Namen ausgestellt werden (Bsp. utm.frankysweb.local, hostxy.frankysweb.intern, etc). Wenn die UTM via ACMEv1 ein Zertifikat anfordert, validiert Let’s Encrypt die Domains via HTTP. Daher muss Let’s Encrypt alle konfigurierten Domain Namen via DNS auflösen und per Port 80 (http) erreichen können.
Let’s Encrypt lässt sich sehr einfach auf der UTM 9.6 konfigurieren. Wie schon erwähnt lassen sich allerdings nur SAN-Zertifikate anfordern. Wildcard Zertifikate lassen sich aufgrund der fehlenden ACMEv2 Unterstützung nicht anfordern.
Damit automatisch Let’s Encrypt Zertifikate angefordert und auch erneuert werden können, muss zunächst einmal die Einstellung “Let’s Encrypt Zertifikate zulassen” aktiviert werden:
Nachdem Let’s Encrypt aktiviert wurde, kann nun ein Zertifikat angefordert werden.
Für das neue Zertifikat muss ein Name angegeben und die Methode “Let’s Encrypt” ausgewählt werden. Der Punkt “Schnittstelle” ist in diesem Fall wichtig, hier muss die Schnittstelle angegeben werden, unter der die angegeben Domänen per Port 80 erreichbar sind. Alle angegebenen Domänen müssen im DNS auflösbar sein und via Port 80 aus dem Internet erreichbar sein. In der Regel handelt es sich hier also um externe Schnittstelle (WAN). Wenn mehrere externe WAN Schnittstellen zum Einsatz kommen, müssen in diesem Fall auch mehrere Zertifikate angefordert werden. Dies kann zum Beispiel der Fall sein, wenn das UTM Userportal unter WAN IP1 und die Webprotection via WAN IP2 erreichbar ist.
Im Feld “Domänen” müssen nun alle Hostnamen angegeben werden, die das Zertifikat enthalten soll:
Nachdem die Zertifikatsanforderung gespeichert wurde, kann im neuen Live Log “Let’s Encrypt” der Status kontrolliert werden:
Das Log ist auch sehr hilfreich bei der Fehlersuche, in meinem Fall wurde das Zertifikat erfolgreich ausgestellt:
Wenn das Zertifikat erfolgreich angefordert und ausgestellt wurde, wird das Zertifikat mit einem kleinen grünem Symbol versehen:
Bis hierher wurde das Zertifikat nur ausgestellt, es muss nun auch noch den angedachten Diensten zugeordnet werden. Das neue Zertifikat lässt sich nun also Beispielweise für das Admin Portal nutzen:
Das Zertifikat lässt sich natürlich auch für alle weiteren Dienste nutzen, wie zum Beispiel die Email Protection:
Hier noch ein Beispiel zur Nutzung des Zertifikats und der Webserver Protection:
Das Zertifikat ist 3 Monate lang gültig. den Austausch nimmt die UTM vor Ablauf automatisch vor. Eine erneute Zuweisung des Zertifikats an die verschiedenen Dienste ist dann nicht mehr nötig. Ob dies auch funktioniert, kann ich allerdings erst in 3 Monaten sagen.
Alternative für Wildcard Zertifikate
Let’s Encrypt bietet Clients für nahezu alle Betriebssysteme an, mit dem ACMEv1 Protokoll und der HTTP Validierung lassen sich die Zertifikate super automatisieren.
Für Wildcard Zertifikate ist allerdings das ACMEv2 Protokoll und damit auch die DNS-Validierung erforderlich. In den meisten Fällen erfordert die DNS-Validierung allerdings etwas manuellen Aufwand, denn der TXT-Record für die Validierung muss beim Hoster der Domain konfiguriert werden. Da die wenigsten Hoster eine API für ihre DNS-Server bereitstellen oder entsprechende Protokolle unterstützen, muss der TXT-Record in der Regel manuell angelegt und aktualisiert werden.
Die Webseite SSLforFree stellt ein Webinterface zur Verfügung welche die Zertifikate via Let’s Encrypt anfordert und die nötigen Einstellungen zu den Validierungsmöglichkeiten anzeigt:
Mit der Webseite SSLforFree lässt sich also Let’s Encrypt wie jede andere kommerzielle CA auch nutzen. Die Zertifikatslaufzeit beträgt allerdings weiterhin 3 Monate, bei nur wenigen Zertifikaten ist der Aufwand aber sicherlich zu vernachlässigen.
Hallo Leute,
ich habe eben ein Zertifikat von LE bekommen.
Scheint also doch (wieder) zu funktionieren.
Oder noch, weil wir ein paar updates zurückliegen ;)
Gruß
Norbert
Hallo, zusammen,
sehr interessanter Artikel!
2 Fragen:
– bisher hatte ich LetsEncrypt auf einer Nextcloud HINTER der SophosUTM laufen gehabt -> Mit einer DNat-Regel für Port 80 + 443 in Richtung der Nextcloud-Maschine funktioniert das auch super.
Jetzt möchte ich gerne ein Zertifikat durch die UTM erstellen (lassen), die DNat-Regeln dann abschalten.
Habe ich es richtig verstanden: die Geräte HINTER der UTM profitieren dann von diesem einen Zertifikat, egal, auf welchem Port die internen Server liegen?
Und: gibt es beim Zertifikat-Erstellen mit LetsEncrypt Probleme, wenn CountryBlocking eingeschaltet ist? Was für eine (Länder-) Ausnahme muss ich vorsehen, damit LetsEncrypt auch regelmässig erneuert + funktioniert? Vielen Dank für eine oder zwei oder drei Antworten. VG Jens
Hi Jens,
wie hast du die Nextcloud in der UTM freigegeben? Ich versuche es aber es klappt nicht.
Mein use case
1. nextcloud lokal installiert 192.100.10.111
2. unter webserver protection realer + virtueller webserver angelegt
lokal komme ich auf die nextcloud aber über die domain klappt es nicht.
Wo kann der Fehler liegen oder was ist noch einzurichten, damit es klappt?
Danke im Voraus
Hi,
Eine Subdomain mit A-Record auf Deine feste IP am WAN-Interface Deiner Sophos hast Du schon eingerichtet?
Das LE-Zertifikat muß dann die gleiche Subdomain beinhalten.
Dein realer Webserver ist die Nextcloud mit Port 443.
Als virtuellen Webserver machst Du als Port 443 mit Redirect, verweist auf Dein LE-Zertifikat und wichtig: unter Advanced den Haken bei „Pass Host Header“ setzen.
Nun steht schonmal die Strecke und alle Häckchen sollten grün werden.
Aber: Die Nextcloud akzeptiert den externen Zugriff erst, wenn Du Deine Subdomain in der config.php hinzufügst. Das geht per ssh z.B. mit putty. Google danach mal. Gibt viele Anleitungen dazu. Bin nur gerade am Autofahren und kann das nicht detailliert tippen.
Viel Erfolg. Ansonsten gerne nochmal schreiben.
Gruß
Christoph
Schade – Sophos hat so lange gebraucht, dass das Ganze gerade mal ein einziges Jahr lang funktioniert hat.
Da Sophos nur ACMEv1 kann – Let’sEncrypt aber nunmehr bei ACMEv2 gelandet ist – hilft es leider herzlich wenig.
Mit der aktuellen Version kann man Lets_encrypt nicht mehr aktivieren.
Mit dem genutzten ACMEv1 Protokoll kann man keine neuen Accounts mehr erstellen…
Welche Version verwenden Sie? Ich benutze die Version 9.700-5 und habe Let’s Encrypt heute ohne Probleme aktiviert.
Läuft soweit.
Hallo zusammen,
gibt es denn schon Erfahrungen mit dem auto-renew?
Ich habe das Ganze jetzt auch mal eingerichtet und hoffe, dass ich jetzt nicht alle 3 Monate da Hand anlegen muss, um das Zertifikat zu verlängern.
Jetzt muss Sophos nur noch die neue tls-alpn-challange implementieren. Dann wäre das ganze eine echte Alternative für ein normales Zertifikat.
Bei uns ist die Lösung über HTTP nicht umsetzbar, da oft die Webseiten von anderen Anbietern gehostet wird. Und wir nur spezielle Services wie Mail, Benutzerportal, usw. über den Sophos veröffentlichen.
Hoffentlich brauchen Sie nicht wieder solange …
@Christoph: wenn ich das versuche, lande ich hier: ftp://ftp.astaro.com/pub/UTM/v9/up2date/ und da gibt es nur bis Version 9.51 also keine 9.6
Hi,
die Datei „u2d-sys-9.510005-600005.tgz.gpg“ besagt, daß es ein Update von 9.510-005 auf 9.600-005 ist. Die kannst Du nehmen, wenn Du bereits die v9.510-005 hast.
MfG
Christoph
Hallo Franky,
Du hast tolle Artikel auf Deinem Blog.
Bezüglich LetsEnCrypt habe ich mit der 9.6er UTM eine Frage bezüglich der Zertifikatsprüfung, die über Port 80 erfolgt. Wie routet man den Traffic?
Habe eine Feste ipV4 IP. 443 wird über die WAF der UTM geroutet. Port 80 geht per IPS und Firewall durch die UTM auf den Webserver.
Wie kann bei der Zertifikatsprüfung dir Prüfurl auf die UTM gelangen? Denke, das ich Port 80 auch per WAF routen muß und per SItePathROuting auf die WAF leiten.
Kannst Du dazu vielleicht ein paar TIps und Anmerlkungen geben.
Danke
Erik
Hallo Erik,
beim Erstellen des LE Zertifikats, kannst du das Interface auswählen, SitePath Routing wird dann durch die UTM automatisch gesteuert. Das Interface muss dann per Port 80 aus dem Internet erreichbar sein.
Gruß, Frank
Ich habe mich heute auch mal an das Setup von Let‘ Encrypt auf meiner UTM gemacht – hat wie hier im Blog beschrieben einwandfrei funktioniert.
Ich würde das Zertifikat auch gerne auf dem Exchange-Server selbst installieren, damit ich auch den den Geräten in internen Netz vom Zertifikat profitieren kann. Im internen Netz verwende ich die gleiche Notation wie bei der externen Domain.
Mit manuellem Export des Zertifikats und manuellem Import auf dem Exchange klappt das auch einwandfrei. Da der Prozess aber nun alle drei Monate ansteht, bin ich auf der Suche nach einer automatisierten Lösung. Hat da evtl. schon mal jemand etwas entwickelt?
Grüße
Oliver
Hatte eine UTM heute erst nach Updates suchen lassen. Per Auto-Update kommt 9.6 immer noch nicht an :-(
Hallo Martin,
soweit ich weiss, kommen Versionsupgrades nie per AutoUpdate.
Einfach ISO-Datei runterladen, CD brennen und USB-CD-Laufwerk anstöpseln, Strom kurz abziehen und die UTM neu starten lassen, dann zieht sie sich das Upgrade automatisch von CD. Hat bei mir 20 min gedauert.
WICHTIG!!! Vorher die Konfig sichern. Nach dem Upgrade befindet sich die UTM wieder im Auslieferungszustand.
Standard IP und Passwort für dein Modell ergoogeln und Rechner entsprechend vorbereiten.
Eine SG230 hat Ende letzter Woche das Update angeboten bekommen – das Update ist problemlos durchgelaufen. Bei einer weiteren SG230 und zwei SG125 noch kein Update in Sicht.
Hallo,
Ihr könnt direkt aus dem Menü der Up2Date-Funktion auf den ftp-Server gehen
und das Update-Paket manuell laden und dann manuell hochladen und aktivieren.
Einen Augenblick später taucht das Update in der Übersicht auf und Ihr könnt das entsprechend anstoßen.
Gruß Christoph
Eine sehr gute Erklärung! Vielen Dank!
Was mich aber noch interessiert und ich keine Info dazu finde ist: was passiert mit den zuvor erstellten Zertifikaten auf meiner Linux-Maschine? Muss ich die löschen? Denn dann sind ja 2 verschiedene Zertifikate im Einsatz.
Vielen Dank
Hallo Frank,
kurze Frage dazu:
Ich habe hinter der UTM ein Synology-NAS mit der Anwendung „Drive“ am Laufen. Der Anwendung habe ich Port 10003 auf https gegeben und den Zugriff per http gesperrt. In dem NAS habe ich dann ein LE-Zertifikat erzeugt und dieses dann an die Anwendung gebunden. Das erstellte Zertifikat habe ich heruntergeladen und in die UTM importiert. Dann eine Subdomain eingerichtet, welche auf meine externe IP zeigt. In der Sophos als virtuellen Webserver das Drive angegeben und mit dem zuvor hochgeladenen Zertifikat verknüpft.
Dieses bedeutet, daß der Zugriff vom Internet zur UTM per https abläuft und von der UTM zum NAS ebenfalls. Hat auch alles geklappt.
Nun habe ich das Zertifikat im NAS gelöscht und ein neues über die LE-Funktion der UTM erzeugen lassen und im virtuellen Webserver das neue Zertifikat mit dem Dienst des NAS verknüpft.
Nun meckert das NAS aber, daß ein ungültiges Zertifikat vorhanden ist. Ich habe dann versucht, daß LE-Zertifikat der UTM downzuloaden und in das NAS zu importieren. Von der UTM kann ich lediglich eine pem-.Datei oder eine p12-Datei downloaden. Wenn ich eine davon in das NAS importieren will, dann wird nach dem Private-Key gefragt. Den habe ich ja aber nicht. Wo bekomme ich den denn her?
Ich habe dann die Kommunikation intern zwischen UTM und NAS wieder auf http gestellt. Dann funktionierts. Ist ja aber nicht Sinn der Sache, wenn ich mit einem LE-Zertifikat von der UTM auf meinen Exchange möchte. Da läuft bisher mit den SSL-Zertifikaten doch auch alles per https ab….
Bitte bringe mich einmal auf den aktuellen Wissensstand ;-). Vielen Dank im voraus.
Gruß Christoph
Hi Andreas, so wie du dir das vermutlich vorstellst, funktioniert das nicht. Auf der UTM läuft eine Zertifizierungsstelle. D.h. du brauchst ein Zertifizierungsstellenzertifikats samt privatem Schlüssel, dem öffentlich vertraut wird. Das dürfte etwas aufwändig werden ;)
Für AD-Mitglieder bietet sich der Import des Zertifizierungsstellenzertifikats per GPO an. Oder alternativ die Verwendung des Zertifizierungsstellenzertifikats der eigenen Zertifizierungsstelle auf der UTM.
Ich habe ein „Gäste-Wlan“ laufen, dass gefiltert wird. Ich würde in diesem gerne das https-scanning aktivieren ohne das die User (zumeist Schüler) Zertifikate importieren müssen.
Hallo Andreas,
ohne das Importieren eines Zertifikats kannst du kein https-Inspection durchführen. Ich würde hier auf https-Inspection verzichten und nur auf die Applikation / URL-Filter setzen.
Gruß,
Frank
Dank für die Info Frank.
Gibt es denn ne Möglichkeit das https-scanning durchzuführen und dabei nur auf der Sophos ein Zertifikat zu installieren ohne auf jeden Browser hinterlegen zu müssen?
Beste Grüße
Andreas
Ist es mit diesem Zertifikat auch möglich die Webprotection bzw. das https-scannin durchzuführen ohne das Zertifikat auf jedem browser verteilen zu müssen?
Hallo Andreas,
du kannst die Zertifikate von Let’s Encrypt nicht für die SSL Inspection verwenden.
Gruß,
Frank
Hallo, wenn man einen DNAT-Eintrag hat der aktiv ist funktioniert das LE-Cert ausstellen auch nicht. Dies muss dafür abgeschaltet werden. Falls einer am Verzweifeln ist :-)
Ich habe Firmwareversion 9.601-5 und drei aktive DNAT Einträge. Das Zertifikat ließ sich problemlos ausstellen.
Es darf keinen DNAT-Eintrag für Port 80 geben! Der muss direkt an der externen Schnittstelle anliegen.
Danke an Herta Bader,
ich nehme an Michael hat zwar DNAT an, aber auf anderen Ports
Hallo Franky,
wie haben bei uns ja nun auch eine UTM (bald eine 2. für HA) im Einsatz. Bei den letzten Updatereleases musste ich schon öfters mit der Stirn runzeln, als ich dann die Qualitätssicherung von Sophos an eigenen Leib erfahren durfte. Was da mehr an Fehlern reinkommt ist schon eine Hausnummer.
Bin daher aktuell sehr skeptisch mit dem Update obwohl ich schon kurzfristig das SSL Thema mit LetsEncrypt frühstücken würde wollen.
Hast du zwischenzeitlich schon von etwaigen Problemen was mitbekommen? S/MIME + SPX funktioniert noch?
Grüße
Manu
Hallo Franky,
ich habe soeben bei meinem Test folgende Meldung erhalten:
2018:12:02-19:12:01 utm letsencrypt[6766]: E Renew certificate: aborting, failed to acquire an exclusive lock: Resource temporarily unavailable
2018:12:02-19:13:01 utm letsencrypt[7066]: E Renew certificate: aborting, failed to acquire an exclusive lock: Resource temporarily unavailable
2018:12:02-19:14:01 utm letsencrypt[8029]: E Renew certificate: aborting, failed to acquire an exclusive lock: Resource temporarily unavailable
DANACH KOMMT DANN DOCH FOLGENDES:
2018:12:02-19:14:35 utm letsencrypt[5724]: I Renew certificate: command completed with exit code 0
2018:12:02-19:14:35 utm letsencrypt[5724]: I Renew certificate: temporary certificate exists, updat ……
Hallo Franky;
…Da die wenigsten Hoster keine API für ihre DNS-Server bereitstellen oder entsprechende Protokolle unterstützen, muss der TXT-Record in der Regel manuell angelegt und aktualisiert werden. …
Ich denke, dir ist da ein Tippfehlerchen unterlaufen, sollte wohl „eine API “ statt „keine API “ heissen ;-)
Hallo Achim,
danke für den Hinweis, ist korrigiert.
Gruß,
Frank