vafk18
Goto Top

Grundsätzliches zu Zertifikaten zum Zugriff auf privates Netzwerk aus dem WWW

Guten Tag,

da ich derzeit den Zugriff aus dem WWW auf mein privates Netzwerk einrichte, beschäftigt mich zum ersten Mal das Thema Zertifikate, damit ich Nutzern Zugang über HTTPS z.B. auf Dienste wie NextCloud oder PhotoPrism gewähre.

Mein Setup:
Mehrere Domains und Subdomains mit Umleitung auf meine öffentliche IP
PfSense mit fester öffentlicher IP
Eingerichteter HAProxy mit mehreren Backendservern, die auf TrueNAS Scale als VM (App) laufen
TrueNAS Scale

Bei Portweiterleitung auf die TrueNAS sind die Apps über IP:Port erreichbar.
Sobald ich über die Domain, z.B. https://nextcloud.meinedomain.de oder https://meinedomain.de gehe, bekomme ich diverse Fehlermeldungen für die Zertifikate.

Ich habe mit ACME auf der pfsense bei Letsencrypt das benötigte Zertifikat erstellt (darin sind mehrere Domains gelistet) und dieses Zertifikat mit öffentlichen Tools als funktionierend getestet.

Nun brauche ich Unterstützung, was ich wo noch einrichten muß:

1) Acme richtete in der pfsense eine Certificate Authority. Benötige ich noch eine weitere CA oder reicht nur diese eine?

2) Wenn ich in meinem privaten Netzwerk auf Geräte wie FritzBox oder TrueNAS zugreife, erhalte ich beim ersten Anmelden eine Meldung, daß das Zertifikat bzw. der Webserver nicht vertrauensvoll ist. Ich kann zwar eine Ausnahme hinzufügen, aber für die Zukunft hätte ich es gerne so, daß es ein internes Zertifikat gibt, damit ich bei einer neuen Anmeldung Ruhe habe. Ich hatte früher auf der pfsense eine interne CA eingerichtet, aber so richtig funktioniert hat es nicht.

Daher die Frage: kann ich ein Letsencrypt-Zertifikat so einrichten, daß auch der Zugriff auf meine internen Server funktioniert? Und wenn das nicht geht, wie erstelle ich mein eigenes Zertifikat, worin alle Webserver in meinem privaten Netzwerk enthalten sind, damit wenn sich ein neuer Benutzer in meinem Netwerk anmeldet, er nicht immer eine Ausnahme im Browser hinzufügen muß?

Ich weiß, daß mein Wissen zu Zertifikaten sehr dünn ist und daher bitte ich um Nachsicht. Am besten fahre ich mit einer Anweisung, welche Schritte ich nach und nach abarbeiten muß und während ich diese Schritte einrichte, lese ich dann in der Wiki nach, was ich mache und verstehe es dann auch. Im Gegensatz dazu, wenn ich mich erst tagelang theoretisch in die Materie einarbeite.

Vielen Dank!

Content-ID: 670194

Url: https://administrator.de/contentid/670194

Ausgedruckt am: 16.12.2024 um 01:12 Uhr

cykes
Lösung cykes 15.12.2024 um 14:37:26 Uhr
Goto Top
Moin,

beschäftige Dich mal mit SAN (Subject Alternative Name/Multi-domain) Zertifikaten. Das geht auch mit Let's Encrypt, da gibst Du jede (aktive) Subdomain (www, nextcloud, fritzbox usw.) und die Hauptdomain an. Du wirst aber ein neues Zertifikat anfordern müssen, da man die SANs nicht nachträglich hinzufügen (oder herauslöschen kann).

Vgl. bspw. https://grumpytechie.net/2019/09/20/adding-sans-to-lets-encrypt-certific ...
oder auch https://letsencrypt.org/docs/integration-guide/

Gruß

cykes
DivideByZero
Lösung DivideByZero 15.12.2024 um 15:16:09 Uhr
Goto Top
Moin,

das
Ich habe mit ACME auf der pfsense bei Letsencrypt das benötigte Zertifikat erstellt (darin sind mehrere Domains gelistet) und dieses Zertifikat mit öffentlichen Tools als funktionierend getestet.

und das

1) Acme richtete in der pfsense eine Certificate Authority. Benötige ich noch eine weitere CA oder reicht nur diese eine?

widerspricht sich. Wenn Letsencrypt-Zertifikate eingesetzt werden, braucht man ja gerade keine eigene CA. Dann gibt es auch keine Fehlermeldungen, weder lokal, noch remote. Es sieht daher so aus, als ob die öffentlichen Zertifikate gar nicht eingerichtet sind, sondern selbst generierte mit eigener CA.

Lesestoff mit Schritt-für-Schritt: agix.com.au/configure-haproxy-on-pfsense-with-letsencrypt-ssl-https-termination/ oder mikes-projects.de/edv/netzwerk/pfsense-letsencrpyt-zertifikate.

Gruß

DivideByZero

P.S.:
Daher die Frage: kann ich ein Letsencrypt-Zertifikat so einrichten, daß auch der Zugriff auf meine internen Server funktioniert?
Ja, s.o.

Und wenn das nicht geht, wie erstelle ich mein eigenes Zertifikat, worin alle Webserver in meinem privaten Netzwerk enthalten sind, damit wenn sich ein neuer Benutzer in meinem Netwerk anmeldet, er nicht immer eine Ausnahme im Browser hinzufügen muß?
Geht nicht. Er müsste bei einem selbstgenerierten Zertifikat Deine CA auf allen aufrufenden Geräten importieren, dann wird auch den Zertifikaten vertraut, die diese CA ausstellt. Das ist noch komplizierter, als die Ausnahme, und für Otto-Normal-User, der einfach eine Seite aufrufen will, untauglich. Um das zu vermeiden, gibt es ja gerade Zertifikate wie die von Letsencrypt.
vafk18
vafk18 15.12.2024 um 16:21:38 Uhr
Goto Top
@cykes

Servus, long time no hear face-smile Danke!

Ich habe jetzt im Acme (für Letsencrypt) zu meinen bestehenden Domains/Subdomains, bei den ich bei meinem Registrar im A record meine feste IP eingetragen habe, noch die ganzen Webserver im internen Netzwerk hinzugefügt. Wie bei den registrierten Domains die Methode "Standalone HTTP Server" über Port 80 hinzugefügt. Letsencrypt meldet beim Renew, daß diese Subdomains

no valid AAAA records found for subdomain.domain

CURLE_URL_MALFORMAT (3)
The URL was not properly formatted.

Muss ich bei meinem Registrar für jeden Webserver in meinem Netzwerk eine eigene Subdomain anlegen, die dann auf meine öffentliche IP verweist?
Dani
Lösung Dani 15.12.2024 um 19:08:07 Uhr
Goto Top
Moin,
no valid AAAA records found for subdomain.domain
hm. Kann es sein, dass du einen Dualstack Lite Anschluss hast und damit nur via IPv6 erreichbar bist?

Wie bei den registrierten Domains die Methode "Standalone HTTP Server" über Port 80 hinzugefügt. Letsencrypt meldet beim Renew, daß diese Subdomains
Ich würde an einer Stelle die Zertifikate bzw. das Wildcard Zertifikat via Challenge DNS-01 abrufen. Somit musst nämlich nicht sicherstellen, dass der abzurufende Service nicht im Internet erreichbar sein muss. Abgesehen davon wird mit einem Wildcard-Zertifikat deine Subdomains nicht offensichtlich publiziert. Es gibt natürlich andere Wege... aber die muss man als vermeidlicher Angreifer erst einmal gehen wollen und können.

Muss ich bei meinem Registrar für jeden Webserver in meinem Netzwerk eine eigene Subdomain anlegen, die dann auf meine öffentliche IP verweist?
Wenn du die Zertifikate via Challenge HTTP-01 abrufen möchtest, Ja. Wobei es einen A-Eintrag tut. Alle weiteren Einträge, welche hinter sich der öffentliche IP-Adresse verbergen, können problemlos als CNAME Eintrag angelegt werden. Schon das mögliche Rate-Limit.

Gruß,
Dani
vafk18
vafk18 15.12.2024 aktualisiert um 20:01:15 Uhr
Goto Top
@DivideByZero
Danke für die Links. Das hat mir weitergehofen!

@Dani
Danke für den Tipp mit der Wildcars, also *.mydomain.com. Letsencrypt hat es einwandfrei geschluckt, nachdem ich im DNS der Domain unter TXT und CNAME vor der Domain "_acme-challenge" eingetragen und im Wert die Challenge-Phrase von Letsencrypt.

Ich habe nun zwei Netwerke, die beide über eine öffentliche IP erreichbar sind. Auf dem entfernten Netzwerk (Office) läuft eine TrueNAS Scale mit zwei Docker Apps, NextCloud und PhotoPrism. Wenn ich nun über WWW auf meinen Server im Büro photoprism.mydomain.com zugreife, erhalte ich einen Fehler, daß das SSL die maximale Länge überschritten hat:

Fehlercode: SSL_ERROR_RX_RECORD_TOO_LONG

Dieser Server läuft jedoch als VM auf der TrueNAS und das ganze habe ich als Backend im HAProxy eingerichtet. Auch hier kann ich noch Fehler gemacht haben.

Wenn ich jedoch auf meine pfsense zugreife (IP:8443) erhalte ich den Fehler, daß das Zertifikat nicht vertrauenswürdig ist und wenn ich die Ausnahme hinzufüge, komme ich drauf. Wenn ich die pfsense mit https://mydomain.com:8443 anspreche, bekomme ich ebenfalls die Meldung, daß

mydomain.com verwendet eine Sicherheitstechnologie namens "HTTP Strict Transport Security (HSTS)", durch welche Firefox nur über gesicherte Verbindungen mit der Website verbinden darf. Daher kann keine Ausnahme für die Website hinzugefügt werden.

Ich taste mich voran dank eurer Hilfe...

Vielleich noch erwähnenswert, daß mir Firefox mein Letsencrypt-Zertifikat anzeigt und dort steht unter

Basiseinschränkungen !
Zertifizierungsstelle Nein

Ist das von Belang?