Follow me

Ab sofort werde ich meine Projekte und Gaming-Highlights auch auf Youtube stellen.

Wer möchte kann mir hier gerne Folgen:

youtube logo

Des Weiteren, da ich eh jeden Abend online Zocke, so habe ich mich auch hier entschieden auf Twitch zu streamen.

Fast täglich ab ca. 19 Uhr

twitch gameplay

 Instagram gefällig?

Instagram logo transparent PNG

Wir sehen uns 

top

pfSense: LetsEncrypt Zertifikate

Da es hier um eine Homelab-Reihe geht, in der ich zeigen möchte, wie auch Ihr "mehrere" Dienste (z.B. Cloud, Hausautomation, VPN, Mail etc.) von extern zur Verfügung stellen könnt, so benötigt man jedoch zwingend auch ein gültiges Zertifikat.

Kommt euch diese lästige Nachricht auch bekannt vor?

Mit LetsEncrypt könnt Ihr euch behelfen.

Grundsätzlich könnt Ihr euch auch einem gekauften Zertifikat bedienen, aber dann würdet Ihr für jeden Dienst ein eigenes benötigen bzw./oder ein teureres Wildcard, welches Ihr jetzt bequem mit LetsEncrypt umsetzen könnt. LetsEncrypt bietet also die Möglichkeit selbst "gültige" Zertifikate zu erstellen und das völlig kostenfrei! Einziger mir bisher bekannter Nachteil, die Gültigkeit ist definitiv kürzer, wie bei einem gekauften Zertifikat, allerdings kann man hierfür wiederum ein Task anlegen, der das sozusagen selbstständig erledigt.

LetsEncrypt ist nicht nur auf der pfSense möglich sondern natürlich so gut wie auf jeder Linux-Distribution, vermutlich sogar auf Windows, was ich aber offen gestanden nicht weiß und sogar in Proxmox ist die Möglichkeit integriert. Vom Ablauf her könntet Ihr für das Vorhaben auch eine VM z.B. Debian mit NGINX installieren und das Gleiche damit erreichen, was wir später mit HA-Proxy machen möchten, aber da ich nicht nur finanziell ein Sparfuchs bin, warum sollte ich mir also den Aufwand geben eine weitere Maschine an den Start zu bringen und zu pflegen, wenn ich das auch mit der pfSense und der gleichen Hardwareressourcen erledigen kann. biggrin 

Also machen wir uns ran.

Kurze Skizze vom Ablauf/Aufbau

Schauen wir uns zunächst die nachfolgende Zeichnung an:

 

Um jetzt den Weg von extern zu euren "Diensten" abzusichern mit Zertifikaten gibt es gewisse Voraussetzungen.

a) Feste IP oder DynDNS

Damit Ihr "permanent" von extern erreichbar seid, wäre am Besten eine feste IP. Im Normalfall habt ihr nämlich alle 24h eine Zwangstrennung bei privaten Anschlüssen und habt nach erneutem Verbindungsaufbau wieder eine neue IP. Bei meinem Provider hatte ich die Möglichkeit für einmalig 10 Euro eine feste IP zu bekommen, was das Ganze deutlich angenehmer macht.

Alternativ könnt Ihr euch einen DynDNS Anbieter suchen. Hintergrund hier ist, dass Ihr euch ähnlich einer richtigen Domäne einen Namen aussucht, der frei ist und müsstet zusätzlich eure Accountdaten bei z.B. eurer Fritzbox eintragen. Die Fritzbox meldet dann eurem DynDNS-Anbieter die neue IP nach der Zwangstrennung und seid weiterhin immer unter dem gleichen Namen erreichbar, allerdings seid Ihr nicht frei von der Namenswahl, denn es wird immer ein Zusatz in der Domäne zu eurem DynDNS-Anbieter dabei sein.

b) Domäne

Wie im Video auch schon erklärt, könnt Ihr durchaus auch mit den DynDNS-Adressen arbeiten, aber unter uns... ich weiß nicht, wie ernst man solche z.B. "Webseiten" nehmen kann, wenn man zu geizig ist sich für (im Jahr) ca. 10 Euro eine richtige Domäne zu leisten. 

Darüber hinaus werden diese vor allem benötigt, wenn Ihr mit Subdomänen arbeiten wollt für entsprechende Dienste (siehe Schaubild mit x.euredomaene.de). Nehmen wir google.de als Beispiel. Wollt Ihr euch eine Route anschauen, dann wäre "maps.google.de" die Adresse wobei "maps" eben auf den Routenplaner verweist. 

Übertragen wir das auf eure Dienste wäre das für z.B. Nextcloud = cloud.euredomaene.de

Ihr könnt aus Punkt a) & b) auch kombinieren, sprich anstatt im DNS bei eurem Domänenanbieter ein A-Eintrag zu machen auf die "festeIP" könntet Ihr auch ein C-Name-Eintrag machen auf eure DynDNS-Adresse, nicht sonderlich hübsch, aber würde funktionieren.

Soweit für den "theoretischen" Teil. 

 

Vorbereitung pfSense: LetsEncrypt

Zunächst, wie immer, würde ich euch empfehlen VORHER ein Backup zu erstellen oder ein Snapshot. In Proxmox wie gewohnt links auf die entsprechende Maschine klicken und ca. in der Mitte dann auf Snapshot.

 

 

Anschließend auf der pfSense einloggen und unter:

System --> Paketverwaltung

 

Das Paket "ACME" installieren

 

Anschließend findet Ihr unter.

Dienste --> Acme Certificates

die Konfiguration für LetsEncrypt.

 

Zunächst müssen wir auf dem Registerreiter "Account keys" uns einen Account für LetsEncrypt erstellen. "Name" und "Beschreibung" sind frei zu vergeben, wobei der wichtige Part "ACME Server" wäre, denn, wenn mein Wissen nicht falsch oder veraltet ist, Ihr dürft in der Stunde max. 10 Zertifikate erstellen, ansonsten würdet Ihr erst einmal für eine gewisse Zeit gesperrt werden. Daher stellt das Ganze einfach auf "Testing" und schon ist alles gut biggrin. Sobald Ihr mit euren Tests durch sein, könnt Ihr es nachträglich auf produktiv setzen. Zuletzt noch ein RSA-Key erstellen = Button "Create new account key" und speichern.

 

 

Zertifikate erstellen

Soweit so gut, jetzt sind die notwendigen Vorbereitungen getroffen und Ihr könnt euer erstes Zertifikat erstellen. Hierzu einfach auf den Registerreiter "Certificates" und auf "Hinzufügen". Name kann natürlich wieder frei vergeben werden, genauso wie die Beschreibung. Natürlich belassen wir es auf "aktiv" und als Acme Account wählen wir den zuvor erstellen Account aus. Den Rest belasse ich so und begebe mich in den unteren Bereich.

Wie im vorherigen Screenshot zu sehen ist als "Verifizierungsmethode" Webroot local folder ausgewählt. Auch hier kurz zur Erläuterung. Ihr könnt mit LetsEncryp zwar selbst gültige Zertifikate erstellen, aber dafür müsst Ihr sozusagen auch etwas tun und zwar wäre eine Methode, dass ihr mit einer Datei, mit gewissem Inhalt auf einem Webserver auf den die Domäne zeigt, bestätigt, dass Ihr der Inhaber der Domäne seid. Erst dann ist die Verifizierung abgeschlossen, dass ein gültiges Zertifikat daraus wird. 

Ich empfinde das als etwas zu viel Aufwand, daher gibt es auch eine andere Methode und zwar via API-Schnittstelle. GoDaddy wäre z.B. solch ein Domänen-Anbieter, welche eine Schnittstelle anbietet damit die Verifizierung darüber läuft. D.h Ihr müsstet, wie im nachfolgenden Schreenshot zu sehen, einfach den Token und das Secret entsprechend dazu eintragen.

 

Mit einer schnelle Googlesuche habe ich euch eben mal rauskopiert, wo Ihr diesen Token/Secret bei GoDaddy findet:

 

 

Somit habt Ihr euch das Leben etwas einfacher gemacht. Fehlt noch ein txt-DNS-Eintrag bei GoDaddy und schon habt Ihr bestätigt, dass Ihr der Inhaber der Domäne seid! Anschließend auf speichern und wie im nachfolgenden Screenshot zu sehen hinten einfach auf "Issue/Renew" klicken und wenn Ihr alles richtig gemacht habt, dann habt Ihr auch ein gültiges Zertifikat zur Verfügung.

 

 

Noch etwas grundsätzliches zu den Zertifikaten. Ihr hättet jetzt für jeden Dienst eine Subdomain erstellen können und für jede Subdomain ein entsprechendes Zertifikat z.B.

  • cloud.euredomaene.de
  • vpn.euredomaene.de
  • mail.euredomaene.de
  • etc.euredomaene.de

Alternativ wäre es auch möglich, das Ganze als einzelnes Zertifikat genannt Wildcard zu erstellen

  • *.euredomaene.de

Einfach einen Stern vor eurer Domäne und schon könntet Ihr ein Zertifikat für alle Dienste nutzen.

 

LetsEncrypt Zertifikate erneuern

Da LetsEncrypt Zertifikate ein geringe Gültigkeitsdauer haben, so müsst ihr diese natürlich zyklisch erneuern. Entweder Handbetrieb auf den Button "Issue/Renew" oder Ihr könnt einfach auf dem Reiter "Generell settings" den entsprechend Haken setzen.

 

Dann viel Erfolg beim Nachbauen biggrin

Einfach mal DANKE sagen!

Auch wenn ich oft etwas länger brauche um neue Beiträge zu verfassen, Videos zu drehen etc. So freut mich es immer wieder ein positives Feedback von euch zu bekommen bzw. neue Follower, daher liegt es mir sehr nahe ein besonderes Dankeschön an euch da draußen zu senden.

Ihr seid super top

Thats me!

Name: Mike
Nickname: Pampersjoe / LuMp
Bj.: 1981
Hobbys: (eindeutig zu viele)

  • Online Zocken
  • IT/EDV
  • Handwerk (eigentlich egal was)

Contact me!

Kontakt


discord logo png 7635 Telegram
discord logo png 7635 Discord

 

Streams


discord logo png 7635 Twitch
discord logo png 7635 YouTube

Rechtliches