Setting up a reverse proxy with nginx proxy manager is pretty simple and comes with letsencrypt support.
For letsencrypt to work, a software needs to write a confirmation code to a special path in your domain. When letsencrypt verifies that you can write to this path (and therefore control the domain), you get the certificate.
I hosted NPM in two servers for some time, I had it break too often and could not set custom configs easily. I switched to caddy and could not be happier.
When using caddy, you don’t even need to think about letsencrypt, unless you want to disable it in favor of something else.
Do you know if it’s just as friction-less to have a self signed cert up with Caddy for internal use? I was using Nginx PM recently and had the need to serve https but I can’t use letsencrypt because it’s not public-facing. Nginx PM only has letsencrypt as an option.
I wish there was a checkbox that just deployed a self-signed cert without bothering with the details (it’s 2024 ffs, HTTPS should be 1 click away, whether that’s self-signed or not).
Just to add to the other comments, you probably want to use a wildcard cert so you don’t need to individually certify each subdomain (or expose them at all).
Setting up a reverse proxy with nginx proxy manager is pretty simple and comes with letsencrypt support.
For letsencrypt to work, a software needs to write a confirmation code to a special path in your domain. When letsencrypt verifies that you can write to this path (and therefore control the domain), you get the certificate.
I hosted NPM in two servers for some time, I had it break too often and could not set custom configs easily. I switched to caddy and could not be happier.
When using caddy, you don’t even need to think about letsencrypt, unless you want to disable it in favor of something else.
Do you know if it’s just as friction-less to have a self signed cert up with Caddy for internal use? I was using Nginx PM recently and had the need to serve https but I can’t use letsencrypt because it’s not public-facing. Nginx PM only has letsencrypt as an option.
I wish there was a checkbox that just deployed a self-signed cert without bothering with the details (it’s 2024 ffs, HTTPS should be 1 click away, whether that’s self-signed or not).
I’m using a self signed CA for my home network with caddy. You just set it up to use a ca once and afterwards it just works. So yeah, really easy.
Iirc you can upload your own certificates and keys in npm, you’ll just have to manage the CA manually or with some other tool.
true, and caddy works very well with docker compose setups.
Caddy combined with dns challenges are the dream!
Is this only for public facing services then? I have little desire to expose my services except through tailscale or something like that.
No! If you have a domain and can do DNS* verification you can get fully functional certificates to use on your internal network.
*Doesn’t have to be DNS, but then you’d need to expose http to the internet for verification.
Reading a post on the LE forum it sounds like smallstep might be closer to what I need.
Just to add to the other comments, you probably want to use a wildcard cert so you don’t need to individually certify each subdomain (or expose them at all).