-
[ANLEITUNG] SSL-Zertifikate via Lets Encrypt im HomeLab ohne öffentlich erreichbar zu sein
Den Umweg über Cloudflare würde ich nur machen wenn der Domain Anbieter keine DNS Challenge unterstützt. Als kostenlose Alternative geht eine dyndns Domain wie duckdns oder ipv64, dort ist kein Cloudflare nötig. Ansonsten wenn euch ein lokales Zertifikat reicht dann könnte euch der Guide helfen: Lokale Zertifikate haben jedoch einen Nachteil, ihr müsst sie auf eure Endgeräte aufspielen können. Bei Geräten wie einem FireTV Stick oder ähnlichen könnte das schwierig werden. Da ist der Weg über eine Domain oder DynDNS die bessere Wahl.
-
Jellyfin mit HTPPS absichern
Schau dir meinen Guide an, brauchst allerdings einen Dns Server wie Pihole oder Adguard Home und einen Reverse Proxy. Kann aber beides lokal auf deinem Unraid Server laufen.
-
[Guide] Setting Up Local HTTPS Domains with a Wildcard Certificate
It works completely fine for me using the Docker container from the Unraid Community Apps — there’s no need for any special setup. It also works perfectly with Pi-hole instead of AdGuard Home. Regarding your second issue: Unraid, BusyBox, Alpine and some shells require one‑line commands. Fix: Remove the backslash and run everything in one line openssl req -x509 -new -nodes -key myCA.key -sha256 -days 10950 -out myCA.pem -subj "/C=DE/ST=NRW/L=Home/O=PrivateCA/OU=IT/CN=Home Root CA" That should prevent the req: Extra option "/" error. I will adjust that in the guide, thank you for reporting the issue.
-
[Guide] Setting Up Local HTTPS Domains with a Wildcard Certificate
Guide: Setting Up Local HTTPS Domains with a Wildcard CertificateSome applications (for example, Vaultwarden) require HTTPS to function properly — even when they are only accessed on your local network. Using Let’s Encrypt for this is often difficult because it requires opening ports to the outside world. A more practical alternative is to create your own Root Certificate Authority (CA) and issue a wildcard certificate. This guide will walk you through how to set it up step by step. 1. RequirementsDocker is installed and running. A local DNS server (e.g. AdGuard Home) configured as the primary DNS in your router. Nginx Proxy Manager (NPM) acting as a reverse proxy. (Optional) A domain purchased from a provider like IONOS, which often includes a wildcard certificate. If you use that, you can skip creating your own Root CA. Example setup in my home network: AdGuard Home: 192.168.178.2 Nginx Proxy Manager: 192.168.178.3 Fritz!Box router: configured to use AdGuard Home as DNS server. 2. Creating a Root CA and Wildcard Certificate 2.1 Create a Root CA (one-time setup)# Generate private key for the Root CA openssl genrsa -out myCA.key 4096 # Create a self-signed root certificate (valid for 30 years) openssl req -x509 -new -nodes -key myCA.key -sha256 -days 10950 -out myCA.pem -subj "/C=DE/ST=NRW/L=Home/O=PrivateCA/OU=IT/CN=Home Root CA" Result: myCA.pem → This Root Certificate will need to be imported on all client devices later. 2.2 Create a Wildcard Certificate for *.home.lan# Private key openssl genrsa -out home.lan.key 2048 # Certificate signing request (CSR) openssl req -new -key home.lan.key -out home.lan.csr -subj "/C=DE/ST=NRW/L=Home/O=PrivateCA/OU=IT/CN=*.home.lan" SAN configuration (create file home.lan.ext)authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = *.home.lan DNS.2 = home.lan Sign the certificate (valid for 10 years)openssl x509 -req -in home.lan.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out home.lan.crt -days 3650 -sha256 -extfile home.lan.ext Resulting files: home.lan.crt → Wildcard certificate home.lan.key → Private key myCA.pem → Root CA 3. Import into AdGuard Home and Nginx Proxy Manager3.1 Configure AdGuard Home (DNS rewrite)In the AdGuard Home dashboard, go to Filters → DNS Rewrites → Add DNS Rewrite. Domain name: e.g. vaultwarden.home.lan. IP address: the internal IP of Nginx Proxy Manager (e.g. 192.168.178.3). 3.2 Configure Nginx Proxy Manager (certificate and proxy host)In the NPM dashboard, go to SSL Certificates → Add SSL Certificate → Custom: Name: *.home.lan Certificate Key: upload home.lan.key Certificate: upload home.lan.crt Intermediate Certificate: upload myCA.pem Then go to Proxy Hosts → Add Proxy Host: Domain Names: vaultwarden.home.lan Scheme: http Forward Hostname/IP: the Docker container IP (e.g. 192.168.178.60) Forward Port: the container’s port (e.g. 8080) Enable: Block Common Exploits and Websockets Support Under the SSL tab, select your custom certificate and tick all checkboxes (except HSTS Subdomains). Click Save → done. 4. Import the Root CA on Client Devices For your browsers and devices to trust your certificates, you must import the Root CA (myCA.pem). WindowsCopy myCA.pem to the Windows machine. Double-click it → the Certificate Import Wizard will open. Choose Local Machine (requires Administrator privileges). Select Place all certificates in the following store → Trusted Root Certification Authorities. Finish the wizard. Windows will now trust all certificates signed by your Root CA. LinuxProcess depends on the distribution: Debian / Ubuntu: Copy myCA.pem into /usr/local/share/ca-certificates/ (rename it with a .crt extension, e.g. myCA.crt). Update the trust store: sudo update-ca-certificates Red Hat / Fedora / CentOS: Copy the file into /etc/pki/ca-trust/source/anchors/. Update the trust store: sudo update-ca-trust Chrome / Chromium-based browsersChrome and Edge use the system certificate store by default. After following the Windows/Linux steps above, they will trust the certificate automatically. If you prefer to import it only in Chrome: Open Chrome → Settings → Privacy and security → Security → Manage certificates. Go to the Trusted Root Certification Authorities tab. Click Import → select myCA.pem. Chrome now trusts your local wildcard certificate. 5. Tips & NotesAvoid using .local domains! Some systems (e.g. Steam Deck) treat .local as reserved and won’t connect. Use .lan or .home instead. Certificates longer than 1 year can cause issues with some services — if so, generate shorter validity periods. Remote access: With a WireGuard VPN tunnel, you can also securely access your HTTPS services when away from home. Docker compatibility: Some containers require HTTPS to run — this setup solves that problem. ConclusionWith this method, you can run local HTTPS domains with your own wildcard certificate — without exposing any ports to the internet. It’s a safe and flexible solution, especially for self-hosted services like Vaultwarden, Nextcloud, or other Docker containers that require HTTPS.
-
Nginx Proxy Manager einrichten für Interne https
Über Let's Encrypt wird es wohl eher nicht klappen, da du Ports nach außen freigeben musst. Alternativ kannst du dir z. B. bei Ionos eine Domain kaufen. Dort ist ein Wildcard-Zertifikat enthalten, das ohne Portfreigabe funktioniert. So kannst du lokal HTTPS-Domains auflösen, die vielleicht nur lokal laufen sollen und HTTPS erfordern, wie z. B. Vaultwarden. Ein kleines Beispiel wie du das ganze erstellst Ich habe folgende Docker am Laufen damit es funktioniert: Adguard Home unter 192.168.178.2 Nginx-Proxy-Manager-Official unter 192.168.178.3 AdGuard Home ist als lokaler DNS-Server in der Fritzbox hinterlegt. Falls der Server nicht läuft, habe ich dnsforge.de als DNS-Backup hinterlegt, um weiterhin Internetzugang zu haben. Erstellung eines Wildcard Zertifikats (bei Nutzung von gekauften Zertifikaten kann der Teil übersprungen werden) Eigene Root-CA und Wildcard-Zertifikat *.home.lan (könnt ihr lokal auf eurem PC erstellen) Root-CA erstellen (einmalig) # Key für die Root-CA openssl genrsa -out myCA.key 4096 # Selbstsigniertes Root-Zertifikat (30 Jahre gültig) openssl req -x509 -new -nodes -key myCA.key -sha256 -days 10950 -out myCA.pem \ -subj "/C=DE/ST=NRW/L=Home/O=PrivateCA/OU=IT/CN=Home Root CA"👉 myCA.pem ist dein Root-Zertifikat → muss auf allen Clients importiert werden. Wildcard-Key + CSR für *.home.lan # Privater Key openssl genrsa -out home.lan.key 2048 # Zertifikatsanfrage (CSR) openssl req -new -key home.lan.key -out home.lan.csr \ -subj "/C=DE/ST=NRW/L=Home/O=PrivateCA/OU=IT/CN=*.home.lan"SAN-Konfiguration (Datei home.lan.ext erstellen) authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSEkeyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names]DNS.1 = *.home.lan DNS.2 = home.lan Zertifikat signieren (10 Jahre gültig) openssl x509 -req -in home.lan.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial \ -out home.lan.crt -days 3650 -sha256 -extfile home.lan.ext Ergebnis: home.lan.crt → Wildcard-Zertifikat home.lan.key → Key myCA.pem → Root-CA Import in Adguard Home und Nginx Proxy Manager Adguard Home: gehe unter Filter -> DNS Umschreibungen -> DNS Umschreibung hinzufügen gib bei „Domain eingeben” die Domain ein, die du später für den Dienst nutzen möchtest, z. B. „vaultwarden.home.lan” trage darunter die interne IP-Adresse des Nginx Proxy Managers ein, bei mir ist das 192.168.178.3 Nginx Proxy Manager: gehe unter SSL Certificates -> Add SSL Certificate -> Custom -> trage dort folgendes ein Name: *.home.lan Certificate Key: home.lan.key Certificate: home.lan.crt Intermediate Certificate: myCA.pem gehe zu Dashboard -> Proxy Hosts -> Add Proxy Host -> trage dort folgendes ein Domain Names: vaultwarden.home.lan Schema: http IP: Docker Container IP z. B. von Vaultwarden 192.168.178.60 Port: Docker Container Port z. B. 8080 (Einfach IP und Port von eurem Dienst/Docker eintragen, so wie ihr ihn sonst aufrufen würdet) Kreuze immer noch "Block Common Exploits" und "Websockets Support" an Dann unter SSL die Domain auswählen -> setze dann immer noch bei allen ein Haken außer HSTS Supdomains auf Save und du bist fertig Hinzufügen des Root-CA im jeweiligen Browser Fügt nun das „myCA.pem → Root-CA” euren Endgeräten im jeweiligen Browser oder dem Betriebssystem hinzu Bei Chrome-basierten Browsern gebt ihr in der Suche „Zertifikat” ein und importiert die myCA.pem Du kannst nun wie in dem Beispiel gezeigt Vaultwarden über https://vaultwarden.home.lan aufrufen Tipps: nehmt keine ausgedachte Domain mit der Endung ".local", manche Systeme haben damit Probleme und ihr bekommt keine Verbindung (mein Steamdeck meinte Webseite nicht erreichbar) bei Zertifikaten die länger als 1 Jahr lang gültig sind, kann es manchmal zu Problemen kommen bei bestimmten Diensten Über einen Wireguard-Tunnel kann ich auch unterwegs über HTTPS auf mein Heimnetz zugreifen. Wie schon erwähnt, setzen einige Docker HTTPS voraus, weshalb das meine Lösung für das Problem war. Vielleicht gibt es noch schnellere Wege, aber für mich als Laien war es die einfachste Lösung. Ich hoffe den ein oder anderen damit geholfen zu haben. Mfg Pixelz
Pixelz_Namikaze
Members
-
Joined