Hallo zusammen,
ich habe mal eine allgemeine Verständnisfrage.
Ich betreibe einen Nginx Proxy Manager (NPM) und dahinter einige Server die von außen entsprechend per https durch den NPM erreichbar sind. Soweit so gut… nun hat mir ein Bekannter erzählt, dass die komplette Kommunikationskette nicht sicher sei, weil ja nach dem NPM bzw. vom/zum NPM und dem jeweiligen Server die Verbindung als http über Port 80 läuft. Da ich die Server ja extra nicht direkt aus dem Internet erreichbar machen möchte kommt für mich ja auch Let‘s Encrypt direkt für die Server nicht in Frage sondern wenn überhaupt selbstsignierte Zertifikate. Wie aber bringe ich dann dem NPM bei, dass er auch das selbstsignierte Zertifikat akzeptiert und dann die Verbindung per https macht? Reicht das, dass ich die Zertifikatsdateien in das CERT Verzeichnis des NPM ablege? Okay, das der NPM dann https statt http macht, kann man ja schnell in der GUI umstellen.
Wie betreibt Ihr das Ganze? Wie seht Ihr die „Gefährdung“ der Kommunikation wenn kein direkter Zugriff auf die Server intern erfolgt sondern alles über den NPM läuft?
Danke für Euren Input.
Viele Grüße
svenson-man
Wen auf einem host der npm läuft und auf dem selben host auch die dienste die erreichbar gemacht werden, ist das überhaupt kein problem wen der npm auf die dienste nur per http weiterleitet, wichtig ist ja das die dienste von extern per https aufgerufen werden, wen die dienste nicht auf dem npm host laufen sondern im Netzwerk, dan muss schon jemand im netzwerk sein um die Kommunikation mit zuschneiden, das ist eher unwahrscheinlich wen sonst niemand zugriff auf das Netzwerk hat,
eigentlich interessiert den npm es nicht ob das Zertifikat selbst signiert ist, ich hatte zumindest nie Probleme den npm auf einen dienst weiterzuleiten der ein selbst signiertes Zertifikate hat.
Hallo @Andrew_XNET. Der NPM läuft auf einem separaten Host in einem separaten Netz also getrennt von den Servern mit den Diensten. Ich habe das gerade mal mit einem selbst signiertes Zertifikat getestet. Du hast recht, den NPM interessiert das gar nicht ob das ein selbst signiertes ist oder nicht. Ich konnte zumindest ohne Fehlermeldung im NPM auf https und Port 443 umstellen. Ich versuche das jetzt die Tage mal mit den produktiven Servern. Danke Dir!
Oder wenn man verrückt genug ist, einfach eine Wireguard zwischen den beiden Hosts einrichten.
Wäre aber mal interessant zu wissen, was performanter ist, HTTPS oder HTTP durch den WG-Tunneln?
Muss er auch nicht, wenn du als Challenge Verfahren DNS-01 nutzt. Somit braucht der Server Zugriff auf das Internet. Aber nicht anders herum. Somit kannst du das auch automatisieren.
Jupp, kann ich aus Erfahrung so bestätigen, dass es funktioniert.
Statt NPM nutze ich allerddings OPNsense mit HAProxy- und acme-Plugin und lasse mir so bei LE ein Wildcard-Zertifikat ausstellen. Dieses wird dann per Automation bspw. an Proxmox und Synology gepusht. (Aktuell hat die Automation für Proxmox noch einen Bug, aber dafür gibt es Abhilfe: OpnSense ACME Automations -> Proxmox VE - #7 von Lonaril)
Für Webseiten, die öffentlich zugänglich sein sollen, übernimmt der HAProxy selbst die Zertifikate, quasi so, wie NPM es tun würde.
Da mein Hoster, bei dem ich meine Domain-Verwaltung (DNS) habe, keine API hat, greife ich auf ipv64.net von Dennis zurück, indem ich einen CNAME in meiner Domain-Verwaltung nach ipv64.net einrichte und in OPNsense zudem auf Alias-Challenge umstellen muss.
Klappt bestens.