Quick and Easy Local SSL Certificates for Your Homelab!
ฝัง
- เผยแพร่เมื่อ 20 พ.ค. 2024
- To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/Wolfgang/
The first 200 of you will get 20% off Brilliant’s annual premium subscription
Follow me:
Mastodon tilde.zone/@notthebee
GitHub github.com/notthebee
Twitch twitch.com/notthebeee
Support the channel:
Patreon / wolfgangschannel
TH-cam Members / @wolfgangschannel
PayPal (one time donation) www.paypal.com/donate/?hosted...
Music:
Meod - Crispy Cone
Skygaze - Hug Me
Steven Beddall - Cuts So Deep (Instrumental Version)
Liquify - Afternoon
Kola - Mello Me
Videos are edited with Davinci Resolve Studio. I use Affinity Photo for thumbnails and Ableton Live for audio editing.
Video gear:
Camera geni.us/K8OOyKV (Amazon)
Main lens geni.us/jnnElY4 (Amazon)
Microphone geni.us/tgiSqL (Amazon)
Key light geni.us/Gi1zE2 (Amazon)
Softbox geni.us/F86pM (Amazon)
Secondary light geni.us/aciv (Amazon)
Other stuff that I use:
Monitor geni.us/KUzcmcP (Amazon)
Monitor arm geni.us/5RXu (Amazon)
Laptop stand geni.us/X5vx9Af (Amazon)
Keyboard www.amazon.de/HHKB-PD-KB401W-...
Mouse geni.us/KB7h (Amazon)
Audio interface geni.us/sdhWsC (Amazon)
As an Amazon Associate, I earn from qualifying purchases
This video was sponsored by Brilliant
Timestamps:
00:00 Intro
00:57 How does it work?
01:34 Brilliant.org
02:28 What will we need?
04:40 Installing Docker - Tutorial starts here
06:03 docker-compose Walkthrough
06:46 Generating the certificate
08:32 Setting up domains
11:02 Outro - วิทยาศาสตร์และเทคโนโลยี
Text version of the video with all the commands: notthebe.ee/blog/easy-ssl-in-homelab-dns01/
To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/Wolfgang/
The first 200 of you will get 20% off Brilliant’s annual premium subscription
Not related but I love your content man, keep it up
hi can you please make a video about pterodactyl and it should be running the pannel and the wings in same docker-compose file if you do that i will be very gratefull and thanks for this amazing video
Thanks for the share, but how about the npm network driver ?
i can see no details about it
thanks in advance (btw the npm never work for me)
Hey Wolfgang!! 😊 what about accessing our home lab securely from the outside world without using third party CDN like cloudflare? Please provide us with a solution in a next video?😊🙏🎉
Greetings to you. Do you have an explanation on how to replace the ip address of the carrier that is shown to the world to: domain HTTPS global. With its connection to a number: a computer.
Yet another great video Wolfgang. Outstanding work. I've been wanting to do this for a while for my homelab and this video is the push I needed. Thank you.
I’ve literally been looking for a tutorial like this for soooooo long 😫😫😫 thank you ❤
This solution is simply brilliant. I was searching for years for such an amazing and simple solution. Thank you.
This video could not have come at a better time! I've just started putting together my own home server and I've been driving myself insane with self-signed certificates. Thanks!
same here =)
Wow, thank you for this video! I didn't know (or think of) that you could point a domain name to a private IP address. That makes creating SSL certificates super easy like this! Love you
Thankss !
Love how clear and fast you explain everything
This video was right on time!
I was exploring how could I deploy things locally without deal with IPs and cert issues.
Very valuable info, thanks for sharing.
Very nice video, this setup is more convenient than my own dns server.
For anyone using a fritzbox router: You have to add your full domain as an exception to the "DNS rebind protection", because the fritzbox does not allow DNS resolution of domain names that point to private ips to protect against DNS rebinding attacks
This is an excellent tip! Thanks!
Thank you! Now it is working as expected.
I was looking for this comment. Thanks alot! :)
Fixed my issue after pulling my hair for an hour
Hero, thank you for this comment.
This is the simplest way to tackle certs I've seen, definitely trying this! I've been putting it off in my homelab for ages.
Doesn't work with Cloudflare.
Good to see a well done tutorial on the exact thing I’ve been trying to achieve for ages!
Great video as always. Thank you for sharing it with us. I am using pfSense in my environment and having HAProxy, however I needed a second proxy manager, your video helped me a lot with setting up the second one. 👍
Lots of information in this video, thank you. The text-blog was very helpful to see the commands without copying them from the video.
I've been waiting for this for years...Thank you!!!!!!!!
This is what i have been searching for. Thanks for the super easy to follow video. Saved me lots of pain. Great work. Cheeeeeeeeers!
Omg this is EXACTLY what i've been looking for for months! Thank you so much!
That's a sub
excellent. exactly what i was looking for. and thank you for having this info in blog post format too.
Thank you for this video, have always been wanting to access all my services through https rather than typing in my IP every time but couldn't as I thought it will take some time for me to study the nuances of the process. This has been an easy and fast setup.
I was almost giving up, but I saw the video and the kind explanation was sweet rain for a beginner like me. Thank you so much
wait y'all are using an application to manage your nginx reverse proxy? I was editing config files like a madman here 😭
If you learned by it then there is no lose!
This is the way.
@@sugoruyothis is the way.
Nginxproxmanager is really nice if you just want a gui and ssl rotation
😮
Thank you for this! It seemed complicated but after following along I got everything working perfectly.
I can not thank enough for this video. I was struggling to figure this out and your video helped me. Thank you
Tausend Dank Wolfgang. This is exactly what I was looking for. I was this close to setting up my own CA and getting a headache trying to add the root certs to all the devices.
Another great video. Clean and simple. Please, you need to teach us how to configure a home assistant dashboard like yours! 🤟
Thank you Wolfgang for making this video. Very easy to follow.
Man this video is exactly what I was looking for. Thank you
I didn't know I needed this video until it was recommended to me. Amazing video and great explanations. Thanks for the caption. Greetings from Brazil. ✌🏽
Great tutorial. To the point. I have been looking for this for a while. Thanks. 😘
Thank You, I had been using an SSL per domain, didn't know you could create just one SSL cert. Now i do an have it set up thanks.
My man! You are my hero. I've watched so many videos trying to figure out how to do this exact thing and you explained it all so perfectly. And the written guide to accompany it was an added bonus and very much appreciated. Thank you, sir!
No problem 👍
I use exactly this setup for over a year and it just works flawlessly. Even auro-renewing the let's encrypt cert works without any issues.
No it doesn't.
Awesome video, the explanations are just perfect. Thanks a lot mate
Seriously thank you so much for this.... I have been trying to find something like this but no one had a solution for this !!!
Danke Wolfgang, dank deiner Anleitung war die Einrichtung sehr einfach! :)
This was just fantastic. I didn’t know I needed something like this in my life until I saw the video. Very well done thanks a lot.
Thank you for the Tutorial. Very good. Just got through everything and it works great.
Btw, great video! Thanks for explaining everything in such a concise and easy to understand manner.
Just a heads up, apparently this method doesn't fully work on Chrome if you have Safe Browsing Standard or Enhanced protection enabled, for me I get the "Deceptive site ahead" warning for some of my local apps, like Jellyfin for example, but I don't get the warning for other apps like Code Server, so idk, just wanted to let you know.
On Firefox I don't get warnings no matter what though, so that works just fine.
Oh man it works so good! Thank you so much.
Gracias por este valioso contenido, hace tiempo que no encontraba como asignarle certificados válidos a un servicio que estuviera fuera Docker, pero ahora ya me di la idea de como poder solucionarlo gracias a tu vídeo ✌️
Thank you, sir! This is a great video. For anyone using pfsense on their home network -- with a different domain than your purchased domain for your home lab -- you are going to want to add DNS host overrides for your purchased domain and the hosts that you are going to be proxying, all pointing to the IP address of the nginx proxy manager.
could you please explain further? Im having trouble on setting this up using my pfsense
could you please show this step, maybe in a short video? pFsense drives me crazy :(
Thanks, was pulling my hair out until I did dns host ovreride and it worked!
Works like a charm! I love this solution!!
another great tutorial, awesome stuff, thank you !
omg I was waiting for a tutorial using precisly docker and DuckDNS together and you just upload this perfect tutorial ! You save my time
Wow - this is fantastically useful - many thanks - will be exploring more on your channel
Your Video is like a rescue ring. I had trouble understanding this concept with the traefik guides from Techno Tim but now that you've implementet a sceamtic drawing it helped alot. Thanks! Again a Video to exact right time :D My instructor wanted me to get the basic of dns and teach myself but i was only stuck at this internal external stuff so you safed me :D
did you get this to work for traefik? i need help for that x-x;
@@AinzOoalG0wn Sadly not now since i haven't had much time yet. But i want to get it working with traefik. Maybe we could stay connected?
@@brokenicelight i came up with a solution. i shutdown traefik and started up nginx proxy manager instead 🤣
i got it to work kinda. even authentik works with it.
just, it only works when my vpn is active. when its turned off, it no longer works 🥲
@@brokenicelight well if u find out a solution plz do share. i had to go back to traefik cause there were some issues in npm i could not resolve 🥲
Add portainer to this and you have an easy way to manage all your containers. :)
Easy it might be defently not efficient. Running shell commands is just faster then navigating around in an GUI to do the same thing.
@@electricz3045 This is where we come to the whole CLI vs GUI discussion again. The right answer is of course your personal preference!
@@fabiandrinksmilk6205 I agree with you. I have multiple docker servers, including HA. It's much easier to manage with Portainer and portainer agents.
Yacht for a smaller yet lighter system that still works for basic setups!
This is useful, thanks. Waiting for my AML-S905X-CC and then I'll set this up.
Thank you very much for this genius tipp ... !!!! You are the best !!!! Installed and works directly.
Awesome video, Wolfgang! I'll have to add this to my lab.
Well... Exactly what I was looking for! Thank you
This worked great on putting https secure connection locally on my new Raspberry Pi 5 running CasaOS! I just had to do a few modification on the ports and IP addresses but everything worked correctly at the end! Thanks! 👍
Thank you so much! Worked like a charm :)
NPM is freakin awesome. It's crazy how easy it is to get setup and going with it and boom...you've got proper SSL and routing.
As (unfortunately) a JavaScript developer I was very confused by this statement for a moment
not quite for me... since I'm not a linux users 😂
mostly I used DNS domain record check for let's encrypt.
@@falxie_ haha yeah I have to think twice when seeing "NPM" now
@@falxie_ nginx proxy manager. Yes, I barely touched JS and I had to ask chatgpt (which is suprisingly good for setting up simple stuff and writing simple shell script
NPM is very confusing when you're not referring to Node Package Manager.
This is such a great feature for self-hosting. Thanks for sharing. It's worth noting that some routers like Fritzboxes have a "DNS rebind protection" where you must add an exception. Otherwise you will bang your head against the wall why it doesn't work, like i did.
I set up passbolt last night and have the problem you just solved in this video thank you
I finally got to set this up after watching the video months ago. I should have set up proxies long ago, much more convenient.
One thing to mention is that this method works well with tailscale as well. I just put my server's tailscale IP instead of local network IP and it works perfectly. Really useful for privately sharing linux isos with friends.
Thank you - as I use Pi-hole, I had to add entries to the pi-hole local dns with the (sub-)domain names pointing to the proxy-manager. After that it run as you explained it.
Thank you - just saved me a lot of head scratching...
you saved me soo much stress
Thank you! Great explain
sweet. never thought of this option. thanks
Excellent. Thank you!
Thank you! I managed to get this working with AWS Route53. The only difference is that the wildcard record needs to also be an A record, not a CNAME.
you're a lifesaver
Thank you for this video.
I have set it up at home, no longer public visibility for some services.
Combined with Tailscale router (to access your local networks), it rocks !
Hey, your comment is exactly what I was looking for, I'm trying to also setup Tailscale alongside Nginx like in the video, but Tailscale also uses port 80, how did you manage it?
Nvm, I got it working, for some reason when I had CasaOS installed as a container before installing NPM, I'd get trouble installing NPM's container, however if I install NPM, configure it and only afterwards install Tailscale then it works just fine.
Although, on a separate note, how do you access your local environment using Tailscale when you're outside of your local network? Since duckdns points to a local IP, it doesn't really work for me outside of my local network, could you explain what you did?
@@Knufle I use Tailscale router to expose the network where the DNS entry resolves.
@@jims888 You have to use tailscale subnets to reach your ip addresses.
Thank you for this great video! Really helped me a lot! :)
This is awesome, thank you!
Worked flawlessly, ty
Thai is exactly what i was looking for. Thank you
thanks alot dude you made my project way cooler and legitimate
Thank you so much for this video, 1 thing I don't think anyone ran into is I had to wait almost a day for my registrar to reflect the IP changes. 🤦Now that I found you I'm going to look through your other video's Thanks again.
"Don't worry about it! Not every bad thing in life is your fault." Thanks man I needed that.
This is a game changer - excellent video
I'm only 1 min. 20 secs in the video and already hit the like button. I'm sure this will be better then my self signed certificates :)
Perfect, just in time, that's really so easy, thanks for the complete tutorial it was helpful.
Dude... this intro speaks directly to my soul. Completely spot-on how it feels. The Blade Runner segment is perfect.
Going to do this on my home lab, that's turned into something I'd see in the field, at work.
Too funny man 😂😂
*joined* 😂😂❤
working very well thanks bro 😁😁
Great video. Got me up and running when I first set up npm. I changed to custom certs from Cloudflare, which last for 15 years though.
Hey man, I'm curious. How is yours setup?
@@justintongol7581 in terms of the CloudFlare cert? I just setup all my dns records through cloudflare and set them to proxied. Then I generated a cloudflare origin cert and imported them into npm. I also set my encryption on cloudflare to strict mode.
Luv this... Thanks heaps 🥂
Great tip! thanks for sharing. Cheers from OZ
Hey, what iTerm2 color scheme are you using? Looks really nice
I did not known Nginx Proxy Manager, I'll give it a try tonight to remove my Nginx and custom configurations (so I'll have to dockerize every app I use + maybe it's time to use Ansible to avoid making everything by hand haha).
Thanks for the tutorial !
Great video! I've been struggling to get this to work. I've setup ssl certs for my external facing sites with NPM but I have had no luck in getting https for local connections with home assistant. The only real reason I want it is for the microphone functionality. I'm using cloudflare as well. Any advice?
You are an absolute legend for this video! I've been trying to fix my reverse proxy and could not get it to work. The "Propagation Seconds" change was an absolute saver! Thanks!
Greatest tip ever, worked on the second try
Amazing video!
thanks by the help !
I have been looking for this for a long time :D
Thanks great tutorial
Thank you for creating this video. If possible, can you create another video showing explaining the theory behind the interaction between client browser, the duckdns server and the NAS ?
loved the video! such a great tutorial! just on question... if it's an "easy way" of doing it so, why not use a docker manager GUI like CasaOS, by example?
This is a great idea!
Is this solution workable if NPM is deployed as an app in TrueNAS Scale? I could create SSL cert and proxy host following your instructions but when trying to access the declared domain name as stated in proxy host, nothing is loading. My idea is to have NPM on TrueNAS Scale app to be the reverse proxy as per your video for my internal sites.
Epic tutorial. Worked like a charm in a Raspberry Pi 4.
Hey, very nice video, but i got an issue, i already use the nginx proxy manager in combination with a domain and cloudflare to expose some stuff to the outside world.
is it also possible to use the same nginx pm and domain for the local ssl stuff?
Clever idea, excellent video.
Learned something new, I wasn't aware that Letsencrypt can do wildcard certificates by now 🙌
Really good video. One question I had after watching it a couple of times - I'm trying to set up local SSL for my Home Assistant server that runs in an IoT VLAN (and 2-way communications to other VLANs on the network isn't allowed) and I'm trying to determine if I'll need a proxy manager on each host that needs this solution, a single proxy manager in each VLAN to serve all the hosts on that subnet or a central proxy manager for all VLANs and then I pipe traffic to/from it, accordingly.
Thank you!
Hi Wolfgang, good content! A video about this topic and authelia would be awesome.
when creating a new proxy host, shouldn't you change the access list to make it more restrictive?
I'm quite new to this and I am constantly concerned that I, by accident, expose my NAS (i'm using truenas scale) to the internet somehow.
one question when adding hosts you need to provide a port. and you need to specify the port, is it inside docker or outside docker?
Some home routers have the ability to setup access as HTTPS only and use the LetsEncrypt feature, but when you do enable that, it'll always complain there is no SSL Certificate to verify it, and give the warning that the page may be insecure everytime you add an exception to it. So this might be a good way to fix that.
this is EXACTLY what I was looking for. You are a lifesaver! (I know I know.. first world problems)
Useful video. Thank you.