Sophos XG redirected Proxy und Lets Encrypt SSL Zertifikat

MetalForLive

Admiral
Registriert
Sep. 2011
Beiträge
8.130
Hallo zusammen,

ich bin aktuell noch an dem Thema redirected Proxy dran.

Ich habe hinter einer öffentlichen IP mit mehreren verschiedenen DynDNS Domains einen Windows Server mit IIS als Webserver und ein Ubuntu Server mit Nextcloud am laufen.
Aktuell ist nur der Windows Server per Port 80 und 443 nach außen hin erreichbar.

Da ich sowieso eine virtuelle Sophos XG als Firewall für VPN nutze, wollte ich auch hierüber einen redirected Proxy laufen lassen.
Die DMZ dort habe ich entsprechend eingerichtet und soweit funktioniert die redirected Proxy Funktion auch.
Komme ich z.B. meineWebdomain.de, werde ich zum IIS Server auf die entsprechende Seite geleitet und komme ich von meineNextcloud.de werde ich auf den Ubunut Server weiter geleitet.

Mit HTTP gar kein Thema, mein großeres Problem ist jetzt HTTPS.

Meine Websites auf dem IIS Server bekommen ein Zertifikat über das Tool win-acme, das ist auch zuständig, damit alle 3 Monate ein neues Zertifikat geriert wird.
Nextcloud auf dem Ubunut Server bietet eine ähnliche Funktion von Haus aus.

Hier bekomme ich allerdings keine Private Keys (Zumindest wüsste ich nicht wo diese zu finden sind), die Zertifikate werden per CLI entsprechend erstellt und direkt in IIS eingebunden, das gleiche bei der Nextcloud.

Theoretisch könnte ich wenn ich den Private Key hätte diese Zertifikate auch auf die Sophos hochladen und mit der entsprechenden Domain mappen.
Allerdings ist das ganze sehr umständlich, wenn man alle 3 Monate dann 5 neue Zertifikate erstellen und manuell hochladen muss.

Gibt es eine Möglichkeit, das Ganze quasi durch zu schleifen, dass die Server selbst die Zertifikate bereit stellen oder ist der Schritt, dass deieZertifikate in die Sophos eingespielt werden zwingend nötig ?
Falls mir hier jemand weiter helfen könnte, wäre spitze !
 
Die beste Lösung wäre ein SAN Zertifikat mit allen Domains. Der ACME Dienst und der reverse Proxy kümmern sich um HTTP/HTTPS mit dem entspechenden SAN Zertifikat und leidet dann an das an das jeweilige Backend unverschlüsselt oder verschlüsselt weiter.

Ich kenne die Sophos XG nicht, benutze pfSense mit HA-Proxy und ACME Client. Dort lässt sich sowas leicht umsetzen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: konkretor
Ich weiß nicht wie es bei der XG aussieht aber die SG kann seit der letzten Version auch selbst lets-encrypt Zertifikate anfordern. Damit kannst du dir das auf den Servern im Hintergrund sparen und der Reverse Proxy übernimmt alles.
 
Ja da mit dem SAN Zertifikat bin ich gerade auch drauf gekommen.
In der Config von win-acme kann ich "PrivateKeyExportable" mit "True" versehen, allerdings habe ich leider noch nicht raus gefunden, wo der private key liegt.
Unter "C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates" liegen die Zertifikate als ".pem" und eine ".pfx".
Die Sophos hätte als Private Key allerdings gerne eine ".key" datei und einen PSK.
Google hilft mir leider auch nicht wirklich weiter wo ich den Private Key finde.


Bei der XG habe ich eine solche Funktion noch nicht entdeck, ich check gerade mal ob es Updates gibt.
Edit: Aktuell gibt es keine Updates.
 
Im pfx Zertifikat ist immer ein private Key. Auf Windows Servern ist es das übliche Zertifikatsformat. Den kannst du extrahieren.

openssl pkcs12 -in zertifikat.pfx -nocerts -out serverkey.pem

Das pfx Zertifikat wird ein Passwort haben, das muss noch entfernt werden:
openssl rsa -in serverkey.pem -out server.key

Ich würde das aber auf Dauer so nicht machen. Wie Masamune2 schrieb, scheint es auf der Sophos ähnlich zu sein wie bei mir auf der pfSense.

Ich würde den ACME Client auf der Sophos verwenden und dort das SAN Zertifklat erstellen. Dieses wird dann im reverse Proxy der Sophos hinterlegt. Dieser Proxy macht dann das Frontend und regelt den HTTPS Verkehr mit dem LetsEncrypt SAN Zertifikat. Dieser Proxy leitet dann unverschlüsselt an deine Server weiter, dort ist dann kein ACME Client mehr notwendig.
 
Nabend,

richte doch eine zusätzliche Site im IIS ein und mache rewrite URL Regel auf deine nextcloud. Die Zertifikate lässt du an der Windows Machine erneuern. Geht bestimmt auch anders, läuft aber =)
 
@Helge01
Danke für die Info, werde ich mal testen.
Werde es wohl jetzt erst mal so machen und 3 Monate laufen lassen, dann hoffe ich das dieses Feature mit LE auf der Sophos direkt auch bei der XG implementiert wird, aktuell scheint dies nicht der Fall zu sein.

@dieselroxx
Das hatte ich ganz am Anfang auch so vor, allerdings hat das einfach nicht funktionieren wollen, deshalb hab ich es jetzt so vor.
Ergänzung ()

Mit dem Passwort entfernen klappt leider nicht, bekomme immer folgende Meldung:

OpenSSL> rsa -in HYQ_MNNh4UO63Ia1AkazxA-csr.pem -out server.key unable to load Private Key 3200:error:0906D06C:PEM routines:PEM_read_bio:no start line:crypto\pem\pem_lib.c:691:Expecting: ANY PRIVATE KEY error in rsa OpenSSL>
 
Zuletzt bearbeitet:
Normalerweise ist in einer pfx Zertifikatsdatei der private Key Passwortgeschützt, muss aber nicht.
Schau dir mal mit einem Editor die HYQ_MNNh4UO63Ia1AkazxA-csr.pem an und poste die erste Zeile. Die müsste so anfangen -----BEGIN
Ist sie unverschlüsselt, muss die Zeile so Aussehen -----BEGIN RSA PRIVATE KEY-----
Verschlüsselt -----BEGIN ENCRYPTED PRIVATE KEY-----
 
Zuletzt bearbeitet:
Oh man, ich sags mal so => Layer 8 Problem 🤦‍♂️

Punkt 1: in der win-acme config, das Passwort was man dort setzt, wird nicht genutzt. Da gibt es irgendwelche Unterschiede, denn wenn ein Zertifikat generiert wird, dann wird eine <random-name>-cahe.pfx erstellt.
Dort wird immer ein random Passwort gesetzt, dies kann man auslesen indem man win acme öffnet und die Option "L: List scheduled renewals" wählt, dort das entsprechende Zertifikat auswählen und schon sieht man das Passwort was generiert wurde.

Punkt 2: man kann den Punkt "Certificate file format" in der Sophos anklicken und dann einfach "PKCS12" auswählen.
Dann muss man nur das Zertifikat hochladen und das wie in Punkt 1 beschrieben generierte Passwort eingeben und schon ist das Zertifikat einsatzbereit.


Jetzt muss ich nur noch schauen wie das Ganze auf Linux für die Nextcloud funktioniert und schon bin ich happy.
Zumindest für 3 Monate, dann hoffe ich, dass die LE Funktion auch in der XG implementiert ist.
Ansonsten muss ich die nächsten 3 Monate nochmal händisch nachhelfen.

Edit:
In der Nextcloud hat es jetzt auch geklappt, dort wurde das Lets Encrypt Zertifikat mit Certbot erstellt.
Den PrivateKey musste ich mit
Code:
openssl rsa -in privkey.pem -out server.key
entsprechend in eine .key wandeln. und das "fullchain.pem" dann mit dem .key hochladen.

Muss ich jetzt erst mal alles dokumentieren fürs nächste mal :D

Danke für eure Hilfe!
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Helge01
Ich weiß, ich weiß, lang ist's her. :-)
Aber ich bin auch gerade bei der Sophos XG gelandet und Stelle fest, die scheint bis heute kein Letsencrypt bekommen zu haben.

Jetzt würde mich interessieren, wie du es seither machst? Bist du bei der XG geblieben?
 
Leider Gottes immer noch händisch, wobei aktuell die VM gerade nicht läuft.
 
Aber du bist noch bei der Sophos geblieben?
Dann werde ich das mit meinem hintergeschalteten Proxy beibehalten und die beiden Ports weiterleiten.
 
Als Reverse Proxy und VPN Firewall, ja.
Hatte zwischenzeitlich noch ne Palo Alto aber da leider nur für ein Jahr Lizenzen, die kann leider auch kein Reverse Proxy.
 
  • Gefällt mir
Reaktionen: MetalForLive
Oder du wechselst einfach zur (in meinen Augen ohnehin besseren) Sophos SG, dort kannst du einfach Let's Encrypt aktivieren und dir Zertifikate ausstellen lassen.
 
Sophos wird die SG jetzt mit sicherheit auslaufen lassen. Es gibt jetzt nur noch ein Produkt und das nennt sich Sophos Firewall...
 
Das hör ich seit drei Jahren.... Es gibt sie immer noch.
Grundsätzlich hast du natürlich recht, aber die SG ist einfach noch zu verbreitet als das man sie kurzfristig schon komplett fallen lassen könnte.
 
Ich kann dir den NGINX Proxy Manager empfehlen! Damit kannst du theoretisch auch non https Seiten nach außen hin mit einem Zertifikat absichern. Übrigens auch mit guter funktionierender LetsEncrypt Funktion! Einziges Manko.. .Docker Container... lässt sich aber recht flott starten sofern man Docker & Docker Compose am Laufen hat... Schöner Nebeneffekt .... das Admin Interface lässt sich auf einen anderen Port/IP legen.
 
Zurück
Oben