pfsense - Einfach vertrauenswürdige Zertifikate erstellen

Ich bin dabei meine Netzwerk- und Serverstruktur anzupassen. Ein Bestandteil davon ist auch eine Proxy Funktionalität über die Firewall zu realisieren. Ich nutze dafür HAProxy und werde demnächst auch einen kleinen Artikel dazu online stellen. Bei diesem Konstrukt möchte ich auch direkt SSL Offloading nutzen und hier kommen wir zum heutigen Thema. Wenn wir die SSL Verbindung aufbrechen wollen, muss die Firewall dem Client ja ein ordentliches Zertifikat präsentieren. 
Genau darum werden wir uns heute gemeinsam kümmern. Wir werden dafür ein Paket aus dem Paketmanager der pfsense installieren, dieses einrichten, uns einen Account erstellen und ein Zertifikat anfordern.
Fangen wir an……..
Wir loggen uns also direkt mal in die pfsense ein und wählen über das System Dropdownmenü den Punkt Package Manager. Die Ansicht öffnet sich mit den schon installierten Paketen. Da wir ein Paket installieren wollen, wechseln wir oben auf die Ansicht Available Packages. Hier gibt es ein Suchfeld in welches wir acme eintragen. Hier seht ihr jetzt einen Eintrag. Um dieses Packet zu installieren klickt rechts auf das Plus bzw. install.
acme steht für Automatic Certificate Management Environment und das ist genau das was wir brauchen! Wenn der Installationsprozess durch ist, finden wir einen neuen Eintrag unter Services. Hier findet ihr, vermutlich ganz oben, den Eintrag Acme Certificates. Generell startet es in der Ansicht Certificates wo wir natürlich aktuell noch nix sehen werden. Daher wechselt bitte auf die Ansicht Account Key und klickt auf add.
Hier gibt es jetzt das erste mal wirklich was zu entscheiden und einzurichten. Als erstes muss ein Name vergeben werden. Hier bietet es sich an den Domainnamen zu nutzen. Ihr könnt natürlich frei entscheiden ob ihr eine Beschreibung eintragen wollt. Wichtig ist der ACME Server. Hier habt ihr die Auswahl zwischen ein paar Zertifizierungsstellen. Da sich diese Auswahl von Zeit zu Zeit ändert, gehe ich heute nur auf die beiden Möglichkeiten mit Let’s Encrypt ein. Hier gibt es zwei Auswahlmöglichkeiten. Einmal den Testserver und einmal für den produktiv Einsatz. Wenn ihr erstmal rumspielen wollt bzw. müsst, solltet ihr wirklich die Testumgebung von Let’s Encrypt nutzen. Der wichtigste Unterschied sind die Anfragen, die ihr pro einer gewissen Zeit stellen dürft. Es wird eine Emailadresse verlangt, unter welcher ihr erreichbar seid. Diese muss nicht zwingend etwas mit der Domain zu tun haben, für welche ihr Zertifikate ausstellen lassen wollt.
Wenn wir alles eingetragen haben, können wir uns mit einem Klick auf Create new account key, einen neuen Schlüssel erstellen lassen. Sobald ihr also Text im Feld seht, sollte die Anfrage geklappt haben. Zum Schluss registrieren wir den Schlüssel noch am Server indem wir auf Register ACME account key klicken.
Jetzt wechseln wir auf den Reiter Certificates und klicken direkt auf add. Auch hier müssen wir einiges anpassen. Wir fangen mit einem Namen an. Dieser muss eindeutig sein, kann aber frei gewählt werden. Unter diesem Namen ist das Zertifikat dann auch im Certificate Manager zu finden. Es bietet sich auch hier an direkt den FQDN zu nutzen.
Auch hier könntet ihr eine Beschreibung einfügen aber das nächste Feld, welches wirklich gepflegt sein muss, ist Acme Account. Wenn ihr wie ich neu startet, dann ist dort der Account direkt ausgewählt. Falls ihr mehr als einen Account angelegt habt, müsst ihr dort den richtigen aussuchen.
Wichtig wird es im Abschnitt Domain SAN List. Hier muss wirklich der voll qualifizierte Domainname eingetragen werden, im Beispiel test.example.com, und daneben müsst ihr festlegen, wie genau das Challenge stattfinden soll. Das bedeutet, dass der Aussteller der Zertifikate sicherstellen muss und will, dass ihr die Hoheit über die Domain habt. Am häufigsten und vermutlich auch am einfachsten ist die Nutzung eines DNS TXT Records. Hier muss vom Verwalter der Domain ein DNS Eintrag erstellt werden, der auf einen bestimmten DNS Namen lautet und einen WErt zugewiesen bekommt. Wenn dieser mit dem Wert übereinstimmt, welcher von Let’s Encrypt festgelegt wurde, kann ads Zertifikat dafür genutzt werden.
Hier kommt jetzt die Stärke des pfsense acme Tools zum tragen. Es wird eine große Anzahl von DNS Betreiber unterstütz. Bedeutet wenn ihr bei einem davon Kunde seid, müsst ihr nur eure Zugangsdaten eingeben und den Rest macht das Tool. Wenn dem so ist, dann könnt ihr hier aufhören zu lesen :-).
Ich habe diese Glück nicht und nutze daher die Möglichkeit, dass ich den DNS Eintrag selber, als manuell, vornehme.
Den Rest belassen wir so und klicken unten auf Save. Jetzt kommen wir wieder auf die Übersichtsseite und sehen das von uns angelegte Zertifikat.
Als nächstes wollen wir das Zertifikat beantragen. Dazu klicken wir in der Spalte Renew auf den Button Issue. Wenn wir diesen drücken dauert es ein klein wenig und wir sehen ein grün hinterlegtes Fenster mit dem Output der Zertifizierungsstelle. In diesem Fenster finden wir auch die weiterführenden Anweisungen. Von uns wird verlangt einen TXT Record für die Domain _acme-challenge.test.example.com mit einem recht langen Wert, eigentlich ein Schlüssel, anzulegen. Wir loggen uns also bei unserem Verwalter ein und legen genau diesen Eintrag an. Wählt zumindest für den Anfang eine sehr kurze Lebensdauer des Eintrag. Ich habe hier 1 Minute eingestellt. Hintergrund ist, dass der Eintrag veröffentlicht werden muss, damit wir weitermachen können. Wenn wir also den Eintrag gemacht haben und etwas Zeit vergangen ist, klicken wir, wie vom Output erwähnt, den Renew Button.
Hier geht wieder ein weiteres Output Fenster auf und wenn der Eintrag gefunden wurde und der Inhalt mit dem übereinstimmt, was die Zertifizierungsstelle möchte, sollten wir zusätzlich zu einem Success auch die Ausgabe des Zertifikats sehen. Weiterhin solltet ihr nach der Aktualisierung der Seite auch die Gültigkeitsdauer des Zertifikats sehen.  
Solltet etwas nicht geklappt haben, schaut euch bitte den Output des grünen Fensters an. Bei mir hatte es in der Regel was mit dem Eintrag zu tun. Häufig habe ich einfach nicht lang genug gewartet, bis dieser propagiert wurde. Das Vorgehen wiederholt ihr jetzt mit jedem benötigten Domainnamen.
Zum Schluss noch ein wichtiger Tipp. Damit die Zertifikate auch automatisch erneuert werden, müsst ihr einen Haken bei den General Settings machen. Hier muss der Punkt Cron Entry aktiviert werden!
Wie immer handelt es sich um mein Beispiel. Passt also alles an eure Voraussetzungen an.
Ich hoffe euch hat der Artikel gefallen. Solltet ihr Fehler gefunden haben, generelle Fragen haben, oder wollt ihr einfach noch zusätzliche Informationen, dann schreibt mir bitte in die Kommentare. Ich versuche diese zeitnah zu beantworten.
Danke fürs lesen…..
Euer cedigger

Schreibe einen Kommentar