Help with Windows SSL setup

Hi All. I’m trying to get jellyfin and jellyfin-web running on my Win 10 PC with Visual Studio 2019. I compiled jellyfin-web, but when I run the solution, I just get a blank Chrome page with “Jellyfin Server is loading. Please try again shortly.”

I see the warnings below in the logs:

[15:03:14] [WRN] [1] Main: Failed to listen to HTTPS using the ASP.NET Core HTTPS development certificate. Please ensure it has been installed and set as trusted.
[15:03:14] [WRN] [1] Microsoft.AspNetCore.Server.Kestrel: Overriding address(es) ‘http://localhost:8096’. Binding to endpoints defined in UseKestrel() instead.

So I need to install a cert. I want to do a self signed one, so I follow the instructions here:

I tried to follow the openssl instructions under Self-Sign Certificate.

But get error “no folder/usr/local/etc…”

Can anyone suggest ways to get this running? Thanks!


Sorry my suggestion isn’t related to what you’re specifically doing but here goes.

I setup Jellyfin on Windows 10 using Caddy as a reverse proxy, a domain name (registered for free) and it automatically handled SSL. Very simple to do (I’m a total novice and I did it, should be a cake walk for you)

1 Like

Thanks! I did see some mentions of Caddy, but didn’t know what it was. I’ll see if I can find documentation for this, and give this a shot.

So I think it’s as simple as:

  1. download (
  2. install (ideally in C:\Caddy
  3. Make your Caddyfile.cfg (more on this below)
  4. Open a CMD window and
    cd Caddy
    caddy run

Your Caddyfile.cfg is the biggest fail point of this setup (IMO) as it’s incredibly finicky with formatting and syntax. Here’s the ENTIRETY of mine:

my.service.url {
    reverse_proxy localhost:8096 

I opened Notepad++, typed that in, saved as Caddyfile.cfg (into the same folder as your caddy install) and I was good to go.

Just to be clear - you’ll replace my.service.url with the URL you have pointed at your IP address.(more on that below)

On the URL end - I have a static IP so you may have to jump through some hoops using one of those dynamic IP services - that’s not something I know alot about. I went to freenom dot come (apparently since I am a new community member I cannot put links in posts?) and registered some random domain name (free for a year). Then I went into the DNS settings on freenom and pointed the domain at my static IP address. (if this part gets you stuck DM me and we can talk through the specifics).

So when someone types in the domain name it comes to my server but CADDY receives the unsecured request, makes it an SSL request (handles the encryption) and points it to port 8089.

My instructions here are probably kind of garbage but hopefully that can get you started and we can figure out what I explained badly as we go. :slight_smile: Good luck and please let me know how I can help.
Some resources:

1 Like

Thanks again for the awesome responses. I was hoping to just casually step thru the code, but I’ll definitely take a look at what you suggest.

Hi, eqpaisley. Regarding Caddy, I downloaded the file titled “caddy_windows_amd64”. I double clicked on it and it did nothing. I cannot see where it installed on my Windows 10 machine at all. What version of Caddy did you use? Which version do I need to install?

Hello G4investor,
You don’t need install anymore
Take the first release put it on a folder C:\caddy
and it works like a charm with the caddyfile linked


So, when I downloaded Caddy, I downloaded the Windows amd64 file, which is “caddy_windows_amd64”. I am running Windows 10 on my PC. Should I have downloaded the Windows amd6 or Windows amd7 file instead?

Also, I created the file Caddyfile.cfg in Notepad ++ and I entered the following in the Caddyfile.cfg file:

my.service.url {
reverse_proxy localhost:8096

I went to freenom dot come and registered a domain name. I pointed that domain name at my static IP address. After I did all this, I still could not connect to Jellyfin outside my home network.

What did I do wrong?

caddy_windows_amd64 is the good file.

my.service.url {
reverse_proxy localhost:8096

Is the good syntax

but be careful :
The Caddyfil is not a .cfg, it 's a no file extension.

Have you opened ports 80 & 443 on your router/firewall ?
Have you closed port 8096 on your router/firewall ?

Untick the Enable automatic port mapping in Settings, Advanced of Jellyfin


After I untick the Enable automatic port mapping in Settings, Advanced in Jellyfin, are there any additional settings I need to update or change in Jellyfin?

In the Caddyfile, are there any other lines I need to enter other than what I have listed in the above post?

Once I have the “caddy_windows_amd64” file placed in C:\Caddy, are there any other commands I need to enter in the command prompt?

Hello dude,

  • Nothing else to change in jellyfin.
  • Caddyfile lines are exactly what we have wrote. (with the good service and url of course.)
  • Of course you have a command to enter : caddy run, once you are in the good directory.
    I’ve made a little batch for autoexecute this part, if you want.

Did you open a command line and RUN caddy?

The hard thing is that without seeing EXACTLY your caddy file and without seeing your DNS settings (like not a redacted version but a screenshot) it’s hard for us to trouble shoot. But it’s also not a good idea to share your IP and DNS and caddy info with strangers, so … it’s tough. I’d feel certain there’s some syntax issue somewhere - that’s what always trips me up.

Also a new Caddy user who successfully setup today, I am running both Jellyfin and Emby side by side along with my Sonarr/Radarr thanks to Caddy.

However, I think you don’t need a “cfg” extention on the end of CaddyFile. Is this the problem.

Also Command Prompt, you need to right click and click Run as administrator.

1 Like