lokale SSL Zertifikate mit nginx proxy manager

slice90

Lt. Junior Grade
Registriert
Feb. 2013
Beiträge
365
Hi,

ich habe seit langem Docker Images auf einem Raspberry 4 laufen.
adguard/pihole, portainer und nginx proxy manager die alle mit einem docker compose erstellt wurden.

Die Guis sind alle nur über http://<lokale-ipv4-raspi4>:<port> erreichbar.
Um die http Anfragen auf https zu zwingen habe ich mir nginx proxy manager (npm) eingerichtet.
Als DNS Anbieter nehme ich Duck DNS und der Eintrag zeigt auf die <lokale-ipv4-raspi4>
Also Grundlage für das Ganze habe ich folgendens YT-Video genutzt.

DNS Settings Fritzbox

Bei Heimnetz -> Netzwerk -> Netzwerkeinstellungen habe ich <lokale-ipv4-raspi4> und <lokale-ipv6-raspi4> als DNS-Server eingetragen.

adguard Settings

Hier habe ich nur Filterlisten aktiviert und weitere Upsteam DNS-Server (1.1.1.1 8.8.8.8) eingetragen.

nslookup löst <meine-domain>.duckdns.org richtig auf meine <lokale-ipv4-raspi4> auf

Das Problem:

Im npm lege ich dann für meinen <meine-domain>.duckdns.org sowie *.<meine-domain>.duckdns.org
unter SSL Certificates das Zertifikat an (DNS challenge)

Unter Proxy Hosts richte ich die Weiterleitungen ein:

<meine-domain>.duckdns.org
http <lokale-ip-raspi4>:<port>
SSL Zertifikat ist das zuvor generierte

Wenn ich dann auf <meine-domain>.duckdns.org im npm klicke, bekomme ich "Fehler Verbindung fehlgeschlagen".
F12 im Firefox zeigt mir unter Netzwerkanalyse NS_ERROR_CONNECTION_REFUSED

Das passiert auch bei den Subdomains für portainer.<meine-domain>.duckdns.org
und adguard.<meine-domain>.duckdns.org

Was habe ich alles probiert:

  • Reset fritzbox und nur den DNS wie oben beschrieben geändert
  • Raspberrypi neu aufgesetzt inkl. Docker
  • diverse Browser Firefox, Edge, Firefox Klar und Safari

Ich hänge jetzt schon Tage an dem Thema und bin ratlos und auch etwas frustriert.
 

Anhänge

  • proxy_host.png
    proxy_host.png
    13,9 KB · Aufrufe: 42
Hast du bereits versucht, dich per SSH mit dem Docker-Container zu verbinden und beispielsweise mit curl zu prüfen, ob du innerhalb des Containers das Ziel (192.168.178.10:8181) erreichen kannst?

Ich hatte lange Zeit ein ähnliches Setup. Einziger Unterschied, eigene Domain statt duckdns. Und rein vom Lesen sollte das ganze schon funktionieren.
 
Das probiere ich nachher aus. Ich hatte gerade auch die Idee, dass da irgendwas mit dem Bridge Netzwerk nicht stimmt.
Ergänzung ()

Code:
<raspi>:~ $ docker exec -it npm /bin/bash
 _   _       _            ____                      __  __
| \ | | __ _(_)_ __ __  _|  _ \ _ __ _____  ___   _|  \/  | __ _ _ __   __ _  __ _  ___ _ __
|  \| |/ _` | | '_ \\ \/ / |_) | '__/ _ \ \/ / | | | |\/| |/ _` | '_ \ / _` |/ _` |/ _ \ '__|
| |\  | (_| | | | | |>  <|  __/| | | (_) >  <| |_| | |  | | (_| | | | | (_| | (_| |  __/ |
|_| \_|\__, |_|_| |_/_/\_\_|   |_|  \___/_/\_\\__, |_|  |_|\__,_|_| |_|\__,_|\__, |\___|_|
       |___/                                  |___/                          |___/

Version 2.11.3 (35d7a3a) 2024-07-01 11:42:06 UTC, OpenResty 1.21.4.3, debian 12 (bookworm), Certbot certbot 2.11.0
Base: debian:bookworm-slim, linux/arm64
Certbot: nginxproxymanager/nginx-full:latest, linux/arm64
Node: nginxproxymanager/nginx-full:certbot, linux/arm64

[root@docker-8cfd46840fce:/app]#
[root@docker-8cfd46840fce:/app]# curl -I http://192.168.178.10:8181
HTTP/1.1 200 OK
Server: openresty
Date: Thu, 03 Oct 2024 10:41:00 GMT
Content-Type: text/html
Content-Length: 1693
Last-Modified: Mon, 01 Jul 2024 11:39:06 GMT
Connection: keep-alive
ETag: "6682955a-69d"
Accept-Ranges: bytes

Ich würde sagen, dass das gut aussieht. Ping zu den anderen Containern inkl. 192.168.178.10 ist auch möglich.
 
Zuletzt bearbeitet:
Lösung:

Anstatt der bridge Netzwerke habe ich macvlans genutzt.

Code:
services:
  nginxproxymanager:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginxproxy
    restart: unless-stopped
    volumes:
     - ./nginx/data:/data
     - ./nginx/letsencrypt:/etc/letsencrypt
     networks:
      macvlan:
       ipv4_address: <lokale-ip-fritzbox-netz>
networks:
  macvlan:
    name: macvlan
    external: true

Den Duck DNS Eintrag habe ich dann auf die IP des nginx proxy managers zeigen lassen.

Das klappt zuverlässig auch mit meinem adguard und portainer.
 
Zurück
Oben