Vaultwarden Selbhost keine Verbindung zur Webhost Domäne

  • Hallo zusammen,

    bin komplett neu hier bei Netcup.

    Habe einen Proxmox Server und möchte gerne Vaultwarden aufsetzen, mit Zugang über meine Domäne. Habe das Webhost 1000 bestellt.

    NGINX ist ebenfalls installiert und die Ports habe ich ebenfalls freigegeben. Ich bekomme jedoch bei NGINX keine Verbindung zu meiner Domäne.

    In Proxy Hosts trage ich meine Domäne ein, htttp + IP von Vaultwarden plus den freigegebenen Port. Dann unter SSL soll ein neues Zertifikat per Let´s Crypt angelegt werden.

    Nach kurzer Ladedauer erhalte ich immer einen Internal Error. Habe es auch mit DNS Challenge versucht, API Key+Passwort eingegeben, aber keine Chance. Dort kommt die Fehlermeldung Configuration File.

    Bin leider blutiger Anfänger und ich denke irgendwas habe ich völlig falsch gemacht. Danke schon mal im voraus

  • Zerlege doch das Problem erstmal in seine Einzelteile!


    Reagiert der Vaultwarden selbst wenn du ihn z.B. über localhost und den Port aufrufst.

    Reagiert der nginx über http, z.B. wenn du eine einfache Seite aufsetzt (Index.htm).

    Was sagen die Logs.


    Magst du ggf. mal deine Configs teilen?

  • Mabanta: Ja. Derzeit habe ich Vaultwarden als Addon (Docker) über Homeassistant am Laufen. Der Zugriff ging zunächst nur per Intranet bzw. als VPN.


    Hatte dies zum Üben auf einen Raspberry drauf gehabt und es nun auf ein Proxmox System migriert.


    Ich wollte jedoch Vaultwarden aus der HA - VM los lösen und es als eigenständige CT laufen lassen. NGINX ist natürlich auch installiert.


    Als Anleitung hatte ich beides (NGINX und Vaultwarden) per Youtube-> Andres Hardware (Proxmox Homeserver Teil 22+25) verwendet.

    War leider erfolglos. Später per Script, ebenfalls das gleiche. Was jedoch funktionierte war die Einbindung von Duckdns. Da war der Zugriff auf die Vaultwarden erfolgreich und ich konnte dort "ein Konto" eröffnen.

  • Code
    "forward_host": "192.168.78.85",
    "forward_port": 80,

    Kannst du uns mal dein Setup genauer erklären.

    Laufen die einzelnen Dienste als Container oder in VMs, welche IP Adressranges werden verwendet, ...


    Wenn du dich auf den Proxmox Host selbst verbindest und ein curl -v http://192.168.78.85 aufrufst, kommt da eine Antwort zurück.

    Gleich Frage nur aus dem Container/VM des nginx?


    Ignorieren wir für den Moment einmal Let's Encrypt und DuckDNS:

    kannst du eine einfache config über nginx erstellen und bekommst diese über die IP deines Servers ausgeliefert (http)?


    Wie initial gesagt, du solltest alle Glieder in der Kette auf Funktionalität prüfen um die Ursache deines Problems zu identifizieren

  • Patrick0815,

    beide Dienste (NGINX und Vaultwarden) laufen als CT -> Container.

    Nginx im Bereich 192.168.78.80/24 und Vaultwarden sollte 192.168.78.85/24 laufen. Gateway ...78.1


    Nach Aufruf in der PVE Shell kommt


    * Trying 192.168.78.85:80...

    * Connected to 192.168.78.85 (192.168.78.85) port 80 (#0)

    > GET / HTTP/1.1

    > Host: 192.168.78.85

    > User-Agent: curl/7.88.1

    > Accept: */*

    >

    < HTTP/1.1 200 OK

    < content-type: text/html; charset=utf-8

    < cache-control: public, max-age=600

    < expires: Thu, 6 Mar 2025 16:18:59 GMT

    < server: Rocket

    < x-frame-options: SAMEORIGIN

    < permissions-policy: accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()

    < x-content-type-options: nosniff

    < referrer-policy: same-origin

    < x-robots-tag: noindex, nofollow

    < x-xss-protection: 0

    < cross-origin-resource-policy: same-origin

    < content-security-policy: default-src 'none'; font-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; object-src 'self' blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-ancestors 'self' chrome-extension://nngceckbapebfimnlniiiahkandclblb chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh moz-extension://* ; img-src 'self' data: https://haveibeenpwned.com ; connect-src 'self' https://api.pwnedpasswords.com https://api.2fa.directory https://app.simplelogin.io/api/ https://app.addy.io/api/ https://api.fastmail.com/ https://api.forwardemail.net ;

    < content-length: 1347

    < date: Thu, 06 Mar 2025 16:08:59 GMT

    <

    <!doctype html><html class="theme_light"><head><meta charset="utf-8"/><meta name="viewport" content="width=1010"/><meta name="theme-color" content="#175DDC"/><title page-title>Vaultwarden Web</title><link rel="apple-touch-icon" sizes="180x180" href="images/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png"/><link rel="mask-icon" href="images/safari-pinned-tab.svg" color="#175DDC"/><link rel="manifest" href="cca56971e438d22818d6.json"/><link rel="stylesheet" href="css/vaultwarden.css"/><script defer="defer" src="theme_head.4cb181fc19f2a308ba73.js"></script><link href="styles.210448eea764e08cd3db.css" rel="stylesheet"></head><body class="layout_frontend"><app-root><div class="tw-p-8 tw-flex"><img class="new-logo-themed" alt="Vaultwarden"/><div class="spinner-container tw-justify-center"><i class="bwi bwi-spinner bwi-spin bwi-3x tw-text-muted" title="Loading" aria-hidden="true"></i* Connection #0 to host 192.168.78.85 left intact

    ></div></div></app-root><script defer="defer" src="app/polyfills.c5a5bb8e63f572e1aad3.js"></script><script defer="defer" src="app/vendor.a472624478da807c2f59.js"></script><script defer="defer" src="app/main.d867124a6761f6de6826.js"></script><script defer="defer" src="styles.31d6cfe0d16ae931b73c.js"></script></body></html>root@pve:~#


    Im Nginx

    * Trying 192.168.78.85:80...

    * Connected to 192.168.78.85 (192.168.78.85) port 80 (#0)

    > GET / HTTP/1.1

    > Host: 192.168.78.85

    > User-Agent: curl/7.88.1

    > Accept: */*

    >

    < HTTP/1.1 200 OK

    < content-type: text/html; charset=utf-8

    < cache-control: public, max-age=600

    < expires: Thu, 6 Mar 2025 16:20:35 GMT

    < server: Rocket

    < x-frame-options: SAMEORIGIN

    < permissions-policy: accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()

    < x-content-type-options: nosniff

    < referrer-policy: same-origin

    < x-robots-tag: noindex, nofollow

    < x-xss-protection: 0

    < cross-origin-resource-policy: same-origin

    < content-security-policy: default-src 'none'; font-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; object-src 'self' blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-ancestors 'self' chrome-extension://nngceckbapebfimnlniiiahkandclblb chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh moz-extension://* ; img-src 'self' data: https://haveibeenpwned.com ; connect-src 'self' https://api.pwnedpasswords.com https://api.2fa.directory https://app.simplelogin.io/api/ https://app.addy.io/api/ https://api.fastmail.com/ https://api.forwardemail.net ;

    < content-length: 1347

    < date: Thu, 06 Mar 2025 16:10:35 GMT

    <

    <!doctype html><html class="theme_light"><head><meta charset="utf-8"/><meta name="viewport" content="width=1010"/><meta name="theme-color" content="#175DDC"/><title page-title>Vaultwarden Web</title><link rel="apple-touch-icon" sizes="180x180" href="images/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png"/><link rel="mask-icon" href="images/safari-pinned-tab.svg" color="#175DDC"/><link rel="manifest" href="cca56971e438d22818d6.json"/><link rel="stylesheet" href="css/vaultwarden.css"/><script defer="defer" src="theme_head.4cb181fc19f2a308ba73.js"></script><link href="styles.210448eea764e08cd3db.css" rel="stylesheet"></head><body class="layout_frontend"><app-root><div class="tw-p-8 tw-flex"><img class="new-logo-themed" alt="Vaultwarden"/><div class="spinner-container tw-justify-center"><i class="bwi bwi-spinner bwi-spin bwi-3x tw-text-muted" title="Loading" aria-hidden="true"></i* Connection #0 to host 192.168.78.85 left intact

    ></div></div></app-root><script defer="defer" src="app/polyfills.c5a5bb8e63f572e1aad3.js"></script><script defer="defer" src="app/vendor.a472624478da807c2f59.js"></script><script defer="defer" src="app/main.d867124a6761f6de6826.js"></script><script defer="defer" src="styles.31d6cfe0d16ae931b73c.js"></script></body></html>root@NGINX2:~#


    Zu deiner letzten Frage: Kannst du eine einfache Config in Nginx erstellen.

    Was wird damit gemeint? Hättest du vielleicht ein Beispiel, was in in der Config von der Benutzeroberfläche von Nginx eingeben, bzw. einstellen könnte?

    Besser gesagt auch wo?

  • Ich würde da ganz vorne ansetzen. Dein Proxmox läuft bei Netcup, hat also im Gegensatz zu deinem Zuhause im LAN nur eine einzige Public IPv4.

    D.h. wenn du von außen über den Proxmox auf Container zugreifen willst, musst du händisch NAT als auch entsprechendes Port-Forwarding auf deinen Proxmox konfigurieren.

    Ebenso müssen dann auch die Interfaces und Firewalling passen (vmbr0,vmbr1)


    Dein DNS-Record würde dann auf auf den Proxmox zeigen, der das Ganze - wie eben genannt - per Port-Forwarding an den NGINX schubst. Hier muss dann entsprechend per Konfig ein Proxy_Pass auf den dahinterliegenden Service konfiguriert werden.

    Ebenso gibt es für NGINX ein Plugin, was sich komplett um Let's Encrypt kümmert.


    ....aber mWn gibt es Vaultwarden nur als Dicker....d.h. ich gehe davon aus du "dockerst?"

    Edited 2 times, last by -Manu-: Schreibfehler ().

  • Hi -Manu-

    Proxmox läuft bei mir derzeit nicht bei Netcup.

    Habe es auf einem Lenovo M720q installiert und als VM habe ich Homeassistant, in welchem ein Vaultwarden als Addon installiert ist, welchen ich gerne als eigenständige Instanz (Container) betreiben möchte. In einigen Foren konnte ich lesen, dass das problemlos gehen sollte und man könnte es mit einer eigenen Domäne betreiben. Alternativ wäre eine Duckdns- Domäne, die ich ungern verwenden möchte, da bei den kostenlosen Geschichte immer "wir" das Produkt sind und mit dem hosten eigenener Passwörter, ist das Gefühl dort nicht so gut.

    Daher habe ich mir das Webhost 1000 von Netcup abboniert (nebenbei auch das Betreiben einer Webmaildomäne für die Family).


    Es ist korrekt, dass ich das Vaultwarden, ebenso das Nginx, als Dockerinstanz in den jeweiligen CT´s führe. Die Installation habe ich wie oben beschrieben per Hand gemacht und konnte dort auch eine Docker-Compose.yml erstellen und ausfüllen. SMTP-Einstellungen, Mailadresse+Apppasswort eingegeben, Admintoken drauf (per argon2), Port 80 angegeben plus https://subdomain.domain.de (Vergeben über netcup)

    wenn ich die IP des Vaultwarden aufrufe, bekomme ich das Vaultwarden Logo aber dort wo eine Registrierung oder Login sein sollte, ist es weiß und ein kontinuierlicher Ladezirkel wird angezeigt. Gehe ich per https://subdomain.domain.de, passiert erst mal nichts und dann kommt ein Fehler.


    Selbstverständlich sind beide Ports 80 443 in der Fritzbox offen, mit Verwendung der IP von Nginx.


    Im Nginx wird die IP Vaultwarden als http (ohne s) mit Port 80 eingetragen, danach im Reiter SSL: Erstellung durch Let´s encrypted plus Mailadresse . Nach 1-2 Sekunden kommt der Fehler Internal Error.

  • Mir sind da immer noch zu viele unbekannte und ungeprüfte Teile in der Kette.


    Wenn du aus deinem Heimnetz Vaultwarden über 192.168.78.85 aufrufst, wird dieser dann vollständig geladen?

    Kommst du denn über deine Public IP auf die Adminoberfläche deine nginx (Proxy Managers), http/https?


    Im Falle des Spinners: was sagt die Developerkonsole des Browsers?

  • und welche IP hast du für subdomain.domain.de vergeben ?!

    Also was hast du als DNS Eintrag hinterlegt?


    Wieso bentutzt du einen docker container, und keinen LXC?

    Wenn du Proxmox doch schon hast würd ich eher einen LXC benutzen bzw 2 Container einmal Vaultwarden und einen Proxy deiner Wahl

  • tbronco75


    Achso. Ich hatte das so verstanden, du hast einen Proxmox bei Netcup am laufen und die Domain über ein zusätzliches Hosting, deine Container laufen auf dem Proxmox in einem internen LAN.

    Und als der Begriff "YouTube Video Homeserver" fiel, dachte ich mir "Das kann ja so nicht gehen...."


    Mein Fehler, sorry.

  • Chriz123 vielleicht ist einfacher zu erklären, wie ich zu meiner Subdomain gekommen bin (und hoffe du erschlägst mich nicht, bin wirklich hier ein Anfänger):


    Über das Control.Panel Webhosting bin ich auf meine Hauptdomäne (domain.de) gegangen und dann eine Subdomain hinzugefügt, nennen wir sie sub.domain.de


    Jetzt steht als neuer Reiter (unterhalb von meiner domain.de)

    pasted-from-clipboard.png


    und mehr habe ich im meinem Leichtsinn nichts mehr eingetragen, also keine DNS.

    Ich wüßte jetzt auch nicht, wo ich was eintragen soll.

  • Die DNS muss auf deine öffentliche IP zeigen, die DNS Einstellungen zu deiner Domain findest du im CCP.


    Das der Vaultwarden bei dir einen Kreisel macht liegt vermutlich daran das du nicht über https zugreifst. Daher wird erst ein Zertifikat benötigt.


    Bin bisschen schreib faul, und muss mein Hund gerade beschäftigen. Kann dir gern so in 20-40min telefonisch bzw. via sprach Chat oder ähnliches helfen.

  • Chriz123

    du meinst dann bestimmt diesen Reiter hier

    pasted-from-clipboard.png


    Ich gehe mal davon aus dass beim Host "*" und Type "A" meiner öffentliche IP wäre.

    Wo und wie trage ich dann die notwendigen Daten ein?


    Ja, Vaultwarden wartet auf das Zertifikat, aber soweit komme ich nicht, da im Nginx jedesmal "INTERNAL ERROR" kommt, beim Erzeugen einer Zertifikats. Denke es könnte mit dem fehlenden DNS zu tun haben.

  • ja da bist du richtig


    jetzt musst du in der ersten spalte die "subdomain" eintragen, aber nur diese, nicht die vollstände in der nächsten "A" und in der letzen spalte deine öffentliche IP Adresse. bischen warten bis das auch propagiert worden ist (kann bis zu 48h dauern, sollte aber in der Regel nach 10min schon erledigt sein)

    dann kannst mal schauen ob Nginx dir nen zertifikat erstellen kann

  • Beispiel:

    Host "*" Type "A" Destination "123.123.123.123"

    Hauptdomain -> anfaenger.de,

    Subdomain -> lerne.anfaenger.de


    Trage nun im (Host) lerne Type A und Destination "123.123.123.123"?