Beantwoord

Docker container hosting

  • 21 March 2023
  • 19 reacties
  • 271 Bekeken

Bij mijn ouder ISP had ik het volgende opgezet:

internet domein bijvoorbeeld pietjepuk.nl => Cloudflare DNS => portforwarding router 80 / 443 => Nginx Proxy Manager (SSL) => Diverse Docker containers met webapps via domein en subdomein.

Nu werkt alles alleen SSL wil helemaal niet lukken. Ik heb best wel ervaring met het opzetten van deze omgevingen, ook met een dynamic IP via DDNS service. Zonder SSL heb je er tegenwoordig eigenlijk niets aan.

Heeft iemand hier een domein met cloudflare door Nginx Proxy Manager incl LetsEncrypt voor elkaar gekregen? Misschien vergeet ik wel iets heel stoms.

(Ik ga er niet vanuit dat T-mobile dit zou blokken?!)

icon

Beste antwoord door henrydenhengst 23 March 2023, 17:45

Bekijk origineel

19 reacties

Uiteindelijk heb  ik het zo gedaan :

zorg wel dat je bij SSL/TLS in cloudflare hem op full strict hebt staan. En force HTTPS. Je poorten kunnen nu dicht bllijven in je modem/router en je hoeft ze niet aan je firewall toe te voegen.  En je hoeft geen Nginx proxy manager  meer te draaien.

 

Dit werkt ook https://3os.org/infrastructure/synology/disable-dms-listening-on-80-443-ports/#disable-the-synology-nas-dsm-to-listen-on-80-443-ports Waarom is me een raadsel. Ik heb het zelfde probleem sinds ik tmobile heb.

 

Reputatie 6
Badge

 

Suggesties opgevolgd. Waar heb jij de documentatie over jou netwerk aanbevelingen gevonden?

Het hangt ervan af of de applicatie het certificaat kan afhandelen. Niet altijd duidelijk, meestal kwestie van proberen. Ik heb ze in alle volgorden geprobeerd.

Dank voor je hulp!

en of je IP-verkeer werkelijk de applicatie bereikt. Ik denk namelijk dat dat niet het geval is. Kijk eens naar het veranderen van port 443 voor SSL op de router

zoals ik al zei: verander onder  <hamburger menu> → extern beheer →mgmt services de https port. Ik meen me te herinneren dat dat de problemen op kan lossen.

Je test waarschijnlijk van binnen je eigen netwerk. In dat geval zal een call naar je wan ip door de router worden gevangen en door de web interface worden beantwoord met het self signed certificaat, ook al heb je extern beheer uit staan.

Verkeer van buiten af zal waarschijnlijk wel correct werken. De SSL port van de router wijzigen voorkomt het probleem vanuit je eigen netwerk.

 

Dank voor al je hulp. Ik ga dit even met rust laten (helaas). Ik ga Cloudflare Tunnels proberen. Jammer dat je eerst je credit-card moet ingeven voor je een een gratis product mag gebruiken.

 

@henrydenhengst Ik ben bang dat @Tommie mij wat overschat heeft, maar ik wil het toch proberen. ;-) Ik zie in de screenshots van de Zyxel dat je zowel port forwarding als port triggering hebt gebruikt. Volgens mij heb je die laatste niet nodig. Voor de zekerheid zou ik die weghalen om te voorkomen dat ze elkaar in de weg zitten.

Verder valt op dat je onder WAN-interface Standaard hebt staan. Hoewel dat lijkt te werken zou ik expliciet de juiste interface kiezen: ETH_Internet (ervan uitgaande dat je glasvezel hebt).

Met Nginx Proxy Manager ben ik niet bekend, maar in de screenshots lijkt het net alsof je nu SSL op poort 80 aan hebt staan, terwijl dat niet werkt. Ik vermoed dat je beide aan moet zetten: poort 80 zonder en 443 met SSL. Ik weet van het instellen van mijn Synology NAS dat je bijvoorbeeld niet poort 80 extern kunt forwarden naar 443 intern. Dat moet je de server zelf laten doen (en in de router beide poorten openzetten en naar dezelfde interne poort sturen, dus 80 → 80 en 443 → 443).

Overigens heeft TM inderdaad geen IPv6, maar dat zou de werking met IPv4 niet in de weg moeten staan.

Dit alles is in aanvulling op de suggesties van @louisL (extern beheer van de Zyxel uitzetten en met bijvoorbeeld 4G testen). Het zijn maar losse flodders van mijn kant, maar hopelijk kun je er toch iets mee. Succes!

 

Suggesties opgevolgd. Waar heb jij de documentatie over jou netwerk aanbevelingen gevonden?

Het hangt ervan af of de applicatie het certificaat kan afhandelen. Niet altijd duidelijk, meestal kwestie van proberen. Ik heb ze in alle volgorden geprobeerd.

Dank voor je hulp!

Reputatie 7
Badge +5

@henrydenhengst Ik ben bang dat @Tommie mij wat overschat heeft, maar ik wil het toch proberen. ;-) Ik zie in de screenshots van de Zyxel dat je zowel port forwarding als port triggering hebt gebruikt. Volgens mij heb je die laatste niet nodig. Voor de zekerheid zou ik die weghalen om te voorkomen dat ze elkaar in de weg zitten.

Verder valt op dat je onder WAN-interface Standaard hebt staan. Hoewel dat lijkt te werken zou ik expliciet de juiste interface kiezen: ETH_Internet (ervan uitgaande dat je glasvezel hebt).

Met Nginx Proxy Manager ben ik niet bekend, maar in de screenshots lijkt het net alsof je nu SSL op poort 80 aan hebt staan, terwijl dat niet werkt. Ik vermoed dat je beide aan moet zetten: poort 80 zonder en 443 met SSL. Ik weet van het instellen van mijn Synology NAS dat je bijvoorbeeld niet poort 80 extern kunt forwarden naar 443 intern. Dat moet je de server zelf laten doen (en in de router beide poorten openzetten en naar dezelfde interne poort sturen, dus 80 → 80 en 443 → 443).

Overigens heeft TM inderdaad geen IPv6, maar dat zou de werking met IPv4 niet in de weg moeten staan.

Dit alles is in aanvulling op de suggesties van @louisL (extern beheer van de Zyxel uitzetten en met bijvoorbeeld 4G testen). Het zijn maar losse flodders van mijn kant, maar hopelijk kun je er toch iets mee. Succes!

Reputatie 6
Badge

zoals ik al zei: verander onder  <hamburger menu> → extern beheer →mgmt services de https port. Ik meen me te herinneren dat dat de problemen op kan lossen.

Je test waarschijnlijk van binnen je eigen netwerk. In dat geval zal een call naar je wan ip door de router worden gevangen en door de web interface worden beantwoord met het self signed certificaat, ook al heb je extern beheer uit staan.

Verkeer van buiten af zal waarschijnlijk wel correct werken. De SSL port van de router wijzigen voorkomt het probleem vanuit je eigen netwerk.

Bij mijn ouder ISP had ik het volgende opgezet:

internet domein bijvoorbeeld pietjepuk.nl => Cloudflare DNS => portforwarding router 80 / 443 => Nginx Proxy Manager (SSL) => Diverse Docker containers met webapps via domein en subdomein.

Nu werkt alles alleen SSL wil helemaal niet lukken. Ik heb best wel ervaring met het opzetten van deze omgevingen, ook met een dynamic IP via DDNS service. Zonder SSL heb je er tegenwoordig eigenlijk niets aan.

Heeft iemand hier een domein met cloudflare door Nginx Proxy Manager incl LetsEncrypt voor elkaar gekregen? Misschien vergeet ik wel iets heel stoms.

(Ik ga er niet vanuit dat T-mobile dit zou blokken?!)

Je beschrijving is niet duidelijk. Laat je DNS naar je dynamische adres wijzen of gebruik je een Cloudflare tunnel? Ik heb dat zelf nooit gebruikt, maar volgende de youtube tutorials van Tom van Lawrence Systems is dat heel simpel  ook met Docker

Je beschrijving lijkt te suggereren dat je DNS configureert met je dynamic IP-adres en de rest lokaal afhandelt, correct? Is er een reden dat je expliciet Cloudflare DNS noemt?

Welke router gebruik je trouwens. Als dat de Zyxel is, probeer dan eens de SSL port van de router te veranderen onder onderhoud → remote management. Ik meen me te herinneren dat port 443 niet wordt doorgelaten als dat de standaard SSL management port is. Als mijn 2e inerpretatie van je post correct is zou het goed kunnen en je de Zyxel gebruikt dat dat je probleem is.,

 

 

Ik maak geen gebruik van Cloudflare Tunnels. Zou het kunnen overwegen als het zo niet zou kunnen gaan werken.

Cloudflare handelt mijn DNS af voor mijn domein, daarom noem ik het Cloudflare DNS.
Cloudflare handelt ook DDNS voor mij af voor mijn dynamic IP, dat we van T-mobile krijgen toegewezen.

Mijn router is de door T-mobile aangeleverde Zyxel DX5401-B1, mijn configuratie qua port forwarding heb ik in de screenshots getoond.
Ik hoop de screenshots zo veel mogelijk antwoord geven op je vragen.

Alvast bedankt.

Hi @henrydenhengst, wat een leuk idee om hier een mooi topic over te schrijven, als het is gelukt! Mijn kennis hierover is niet hemelsbreed, toch heb ik hier nog eens naar gekeken. Dit lijkt te moeten werken maar het lijkt erop dat er een probleem is met het SSL-certificaat dat je hebt aangemaakt met LetsEncrypt. Wellicht is dit heel voor de hand liggend maar checken kan geen kwaad!

 

Mogelijk is er iets misgegaan bij het aanmaken of toewijzen van het certificaat aan de juiste hosts. Dit kan leiden tot een SSL-foutmelding in de webbrowser.

Een mogelijke oplossing is om de SSL-configuratie in Nginx Proxy Manager te controleren en te zorgen dat de certificaten correct zijn toegewezen. Controleer ook of de DNS-instellingen correct zijn geconfigureerd en dat de domeinnaam die is gebruikt om het LetsEncrypt-certificaat aan te maken overeenkomt met de domeinnaam waarnaar wordt verwezen in de DNS-instellingen.

Als alternatief kun je een online SSL-certificaat validatie tool gebruiken om het certificaat te controleren op fouten. Dit kan helpen om het probleem op te sporen en op te lossen.

Let op dat de DNS-instellingen, SSL-configuratie en Nginx-proxy-instellingen correct hebt geconfigureerd om te zorgen dat alles soepel werkt. 

 

Verder ben ik niet heel erg bekend hiermee, misschien helpt het iets. Verder wacht ik onze techwizards af!😎

Ik hoop met onderstaande screenshots zo veel mogelijk antwoord te hebben gegeven op je vragen.

Resulaat:

 

NB. Als ik alle SSL weghaal kom ik op alle manieren uit op onderstaande WP pagina.

Nginx Proxy Manager aanmaken certificaat Lets Encrypt

Nginx Proxy Manager aanmaken certificaat Lets Encrypt

 

 

Cloudflare DDNS API Token dat via een crontab op mijn server steeds wordt gecheckt en geupdate bij een nieuw IP.

 

DNS

 

DNS records Cloudflare

 

DNS Instellingen Vimexx

 

router

 

NAT - poortdoorschakeling

 

NAT Poorttriggering

 

Reputatie 6
Badge

Bij mijn ouder ISP had ik het volgende opgezet:

internet domein bijvoorbeeld pietjepuk.nl => Cloudflare DNS => portforwarding router 80 / 443 => Nginx Proxy Manager (SSL) => Diverse Docker containers met webapps via domein en subdomein.

Nu werkt alles alleen SSL wil helemaal niet lukken. Ik heb best wel ervaring met het opzetten van deze omgevingen, ook met een dynamic IP via DDNS service. Zonder SSL heb je er tegenwoordig eigenlijk niets aan.

Heeft iemand hier een domein met cloudflare door Nginx Proxy Manager incl LetsEncrypt voor elkaar gekregen? Misschien vergeet ik wel iets heel stoms.

(Ik ga er niet vanuit dat T-mobile dit zou blokken?!)

Je beschrijving is niet duidelijk. Laat je DNS naar je dynamische adres wijzen of gebruik je een Cloudflare tunnel? Ik heb dat zelf nooit gebruikt, maar volgende de youtube tutorials van Tom van Lawrence Systems is dat heel simpel  ook met Docker

Je beschrijving lijkt te suggereren dat je DNS configureert met je dynamic IP-adres en de rest lokaal afhandelt, correct? Is er een reden dat je expliciet Cloudflare DNS noemt?

Welke router gebruik je trouwens. Als dat de Zyxel is, probeer dan eens de SSL port van de router te veranderen onder onderhoud → remote management. Ik meen me te herinneren dat port 443 niet wordt doorgelaten als dat de standaard SSL management port is. Als mijn 2e inerpretatie van je post correct is zou het goed kunnen en je de Zyxel gebruikt dat dat je probleem is.,

Reputatie 7
Badge +9

@henrydenhengst, De meeste moderne webbrowsers en servers ondersteunen zowel IPv4 als IPv6 en kunnen probleemloos werken met SSL-certificaten, ongeacht welk protocol wordt gebruikt.

Het kan echter zijn dat er configuratieproblemen zijn die het gevolg zijn van de implementatie van IPv6 op het netwerk of de server, wat zou kunnen leiden tot problemen met het SSL-certificaat. In dergelijke gevallen is het belangrijk om de oorzaak van het probleem te achterhalen en op te lossen, en dit kan enige technische expertise vereisen.

 

Reputatie 7
Badge +9

Hi @henrydenhengst, wat een leuk idee om hier een mooi topic over te schrijven, als het is gelukt! Mijn kennis hierover is niet hemelsbreed, toch heb ik hier nog eens naar gekeken. Dit lijkt te moeten werken maar het lijkt erop dat er een probleem is met het SSL-certificaat dat je hebt aangemaakt met LetsEncrypt. Wellicht is dit heel voor de hand liggend maar checken kan geen kwaad!

 

Mogelijk is er iets misgegaan bij het aanmaken of toewijzen van het certificaat aan de juiste hosts. Dit kan leiden tot een SSL-foutmelding in de webbrowser.

Een mogelijke oplossing is om de SSL-configuratie in Nginx Proxy Manager te controleren en te zorgen dat de certificaten correct zijn toegewezen. Controleer ook of de DNS-instellingen correct zijn geconfigureerd en dat de domeinnaam die is gebruikt om het LetsEncrypt-certificaat aan te maken overeenkomt met de domeinnaam waarnaar wordt verwezen in de DNS-instellingen.

Als alternatief kun je een online SSL-certificaat validatie tool gebruiken om het certificaat te controleren op fouten. Dit kan helpen om het probleem op te sporen en op te lossen.

Let op dat de DNS-instellingen, SSL-configuratie en Nginx-proxy-instellingen correct hebt geconfigureerd om te zorgen dat alles soepel werkt. 

 

Verder ben ik niet heel erg bekend hiermee, misschien helpt het iets. Verder wacht ik onze techwizards af!😎

Oh jee geen IPv6, serieus?! Dat zou wel eens het probleem kunnen zijn met de certbot van LetsEncrypt.

Graag reactie van wat netwerk deskundigen, klopt mijn analyse dat IPv6 wel eens het probleem kan zijn van niet werkende SSL certificaten?

 

 

Hi @henrydenhengst, welkom op onze Community! Ik wil toch vragen of @louisL of @TMTV hier een blik op willen werpen. Wellicht kunnen zij hier hun licht op schijnen.

Dat zou heel fijn zijn @Tommie 

Ik zou heel graag werkend willen maken.

Dit gedeelte werkt:

Het gaat dus om Cloudflare (Firewall en DNS) om veilig het domeinverkeer naar mijn IP te krijgen en (DDNS) om het IP nummer automatisch aan te passen als het zou wijzigen.

Vervolgens wordt het verkeer aangeboden op mijn IP via poort 80 (http) of 443 (https) en wordt het verkeer doorgezet door de reverse proxy server (Nginx Proxy Manager) naar het gewenste interne IP en poortnummer.

Alles gewoon via HTTP werkt, geen probleem.

En vervolgens gaat het fout:

Nu wil ik alles via HTTPS (SSL) laten verlopen dus maak ik LetsEncrypt certificaten aan binnen Nginx Proxy Manager en toewijzen aan de “hosts”, het wordt geaccepteerd en je denkt dit ging goed.

Maar Nee, de webbrowser accepteerd het niet en geeft niets weer.

 

=========================================================================

NB. Een andere werkende methode zoals Traefik is ook bespreekbaar.

Als het werkt zal ik een tutorial schrijven, indienst gewenst, zodat iedereen dit op zijn netwerk kan doen, inclusief Docker en Docker-Compose. Een HomeLab is echt heel erg cool. Ik had het perfect werken op dezelfde manier bij mijn vorige ISP, maar daar had ik te weinig upload bandbreedte.

 

 

Reputatie 7
Badge +9

Hi @henrydenhengst, welkom op onze Community! Ik wil toch vragen of @louisL of @TMTV hier een blik op willen werpen. Wellicht kunnen zij hier hun licht op schijnen.

Reageer