Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk11 min

How to Enable HTTPS for Uptime Kuma (Caddy, Nginx, Apache, Traefik, or Cloudflare Tunnel)

A practical guide to putting Uptime Kuma behind HTTPS: choose a hostname, terminate TLS with your preferred proxy or tunnel, forward WebSockets to port 3001, keep Kuma private, and verify the dashboard from outside your network.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable way to enable HTTPS for Uptime Kuma is to put Kuma behind a reverse proxy or a Cloudflare Tunnel. The proxy (or tunnel) owns your public hostname and TLS certificate, while Uptime Kuma continues listening on its normal internal HTTP port, usually 3001. Forward ordinary HTTP requests and WebSocket upgrades to Kuma, test from outside your network, and keep port 3001 private whenever the proxy is the only public entry point.

Do not publish Kuma at a normal path such as example.com/uptimekuma: the official documentation says that deployment pattern is not supported. Use a dedicated hostname such as status.example.com or a subdomain instead. The official Uptime Kuma reverse-proxy guide also warns that Kuma is WebSocket-based, so a proxy that handles only ordinary HTTP will produce a partially broken dashboard.

As an Amazon Associate I earn from qualifying purchases.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What the HTTPS setup looks like

Uptime Kuma itself normally serves HTTP on port 3001. HTTPS is terminated in front of it:

  1. A DNS record points a hostname such as status.example.com to your server, proxy, or tunnel.
  2. Caddy, Nginx, Apache, Traefik, or Cloudflare Tunnel obtains or presents the TLS certificate for that hostname.
  3. The proxy forwards requests to http://127.0.0.1:3001 (or the Kuma container’s address).
  4. WebSocket upgrade requests are forwarded as well, allowing live dashboard updates, login state, and notifications to continue working.

Users connect to https://status.example.com; Kuma can remain an internal HTTP service. The official wiki recommends SSL with a web server to reduce man-in-the-middle risk on public networks. It states: “Unlike other web apps, Uptime Kuma is based on WebSocket.” It also states: “It is recommended to use SSL (HTTPS) with your web-server to avoid MiTM attacks when on a public network.” Those statements appear in the official reverse-proxy documentation, edited April 24, 2026.

#1 Best Overall
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

Before you configure anything

Choose a hostname, not a subdirectory

Create a DNS A or AAAA record for a dedicated name. A subdomain is the least surprising arrangement because Kuma generates links and WebSocket connections for the host it is served from. A regular subdirectory deployment, for example example.com/uptimekuma, is not supported by the official guide.

Decide where TLS will terminate

Use one of these patterns:

  • Native reverse proxy: Caddy, Nginx, Apache, or Traefik listens on ports 80 and/or 443 and forwards to Kuma.
  • Cloudflare Tunnel: the tunnel publishes the hostname and supplies HTTPS without a separate Nginx, Caddy, or Traefik instance.

Do not run multiple independent TLS terminators for the same hostname unless you deliberately understand which one receives traffic first.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep Kuma’s listener private where possible

If the proxy is the only intended public entry point, bind or firewall port 3001 so it is reachable only from the proxy or local host. This prevents users from bypassing HTTPS by visiting the server’s IP address and port directly. For containers, place Kuma and the proxy on the same private network and publish only the proxy’s public ports.

Which HTTPS method should you choose?

Method Certificate automation Separate proxy required? Docker integration WebSocket handling Can port 3001 stay private?
Caddy Automatic acquisition and renewal when DNS and ports 80/443 are correctly configured No additional proxy beyond Caddy Use a shared proxy network and Caddy labels in the documented pattern Handled by reverse_proxy Yes
Nginx Certbot with Let’s Encrypt can populate the configuration and set renewal and HTTP-to-HTTPS redirection Nginx is the proxy Works with a published or private Kuma container, depending on your network design Requires HTTP/1.1 plus Upgrade and Connection headers Yes
Apache Certbot can manage the certificate lifecycle Apache is the proxy Works when Apache can reach the Kuma container Rewrite WebSocket upgrades to ws://localhost:3001 Yes
Traefik Configured certificate resolver automates issuance and renewal Traefik is the proxy Docker labels are the normal integration Traefik forwards the WebSocket connection through the labeled service Yes
Cloudflare Tunnel Zero-configuration SSL supplied by the tunnel No separate Nginx, Caddy, or Traefik required Provide a tunnel token in the documented Docker setup The tunnel carries Kuma’s WebSocket traffic Yes; no inbound 3001 exposure is needed

The right choice is usually the component you already operate. Caddy has the shortest native configuration; Nginx and Apache suit existing web-server installations; Traefik is convenient when Docker labels already drive your routing; and Cloudflare Tunnel is useful when you do not want to open inbound web ports.

Recommended deployment sequence

  1. Choose the hostname. Use a dedicated domain or subdomain and point DNS at the reverse proxy or tunnel endpoint.
  2. Run Kuma internally. Leave Kuma on its normal service port, normally 3001, and restrict that port to the local machine or private container network.
  3. Configure the front end. Add the Caddy, Nginx, Apache, Traefik, or tunnel configuration for the hostname.
  4. Issue the certificate. Use Caddy or Traefik automation, Certbot with Let’s Encrypt, or the tunnel’s managed SSL.
  5. Preserve WebSockets. Confirm the proxy sends the Upgrade and Connection headers or otherwise supports WebSocket pass-through.
  6. Test the public URL. Open the HTTPS hostname from an external network, sign in, watch a monitor update, and trigger a notification.
  7. Set proxy trust only when appropriate. In Kuma, enable Trust Proxy only after the service is fully behind a controlled proxy and forwarded headers cannot be supplied by untrusted clients.

Option A: Caddy

Caddy is the shortest configuration when it is installed directly on the host. The official example is:

Rank #2
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
  • Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
  • Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
  • CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
  • CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
  • CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)
subdomain.domain.com {
    reverse_proxy 127.0.0.1:3001
}

Replace subdomain.domain.com with your real hostname. Caddy requests and renews the certificate automatically when the hostname resolves to the server and ports 80 and 443 are reachable as required by its certificate flow. The proxy then forwards both normal requests and WebSocket traffic to Kuma.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Native Caddy checklist

  • Create the DNS record before starting certificate issuance.
  • Allow the required public web ports through the host firewall and any upstream firewall.
  • Reload Caddy after saving the site block.
  • Browse to the HTTPS hostname and verify that the certificate name matches the hostname, not an IP address.
  • After the page loads, open the browser developer tools or simply observe whether the dashboard updates without a manual refresh.

Docker pattern

The official Docker Compose pattern puts Uptime Kuma on the same proxy network as Caddy and uses labels, including caddy.reverse_proxy: "* {{upstreams 3001}}". The important details are that Caddy can resolve the Kuma container and that the service’s internal port is 3001. Do not publish 3001 to the entire internet merely because Caddy is containerized.

Option B: Nginx

For Nginx, create an SSL-enabled server block for the hostname. The documented pattern is:

server {
  listen 443 ssl http2;
  server_name sub.domain.com;
  ssl_certificate     /path/to/ssl/cert/crt;
  ssl_certificate_key /path/to/ssl/key/key;
  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_pass http://localhost:3001/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}

Replace the hostname and certificate paths. The Host header lets Kuma know which public host the request used; the client-IP headers preserve the address supplied by the proxy; and HTTP/1.1 with the Upgrade and Connection headers enables WebSockets.

Obtaining certificates with Certbot

The official Nginx instructions start with the “Without SSL” settings and then use Certbot with Let’s Encrypt. Certbot can populate the Nginx configuration, create an automatic HTTP-to-HTTPS redirect, and arrange renewal. Confirm that the resulting server block still contains the WebSocket directives after Certbot changes it. A certificate that is valid but paired with a proxy block missing WebSocket forwarding will still leave Kuma malfunctioning.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
ELECROW CrowPi Case Kit for Raspberry Pi 5, 9-Inch Display
  • Not including the Raspberry Pi 5 (8GB), the Crowpi advanced version comes with the Raspberry Pi 5
  • ELECROW Black Case for the Raspberry Pi 5, CrowPi is equipped with a 9-inch HD touchscreen along with a camera; All the regular components used in DIY electronics are packed into the CrowPi development board, such as LCD, LED matrix, buzzer, light sensor, PIR sensor, ultrasonic sensor, IR sensor, etc
  • Raspberry Pi Sensors: The Crowpi raspberry pi 5 programming kit is jam-packed with lots of buttons such as 19 different sensors in a tidy easy to use package; You don't have to wait and wire things
  • Build Quality: Solid ABS shell and well made components in one place make it strong and convenient to travel
  • Programming Lessons: This raspberry pi 5 learning kit ships with step by step instructions and provides 21 lessons to take you through identifying components reading code and running it in the terminal

Nginx-specific checks

  • Ensure the 443 server block has the hostname you actually use.
  • Check that the certificate and key are readable by Nginx.
  • Keep the trailing slash in proxy_pass http://localhost:3001/; as shown unless you have a tested reason to change URI handling.
  • Use a separate HTTP listener only for redirecting port 80 to HTTPS if you want all visits encrypted.

Option C: Apache

Apache uses an SSL virtual host on port 443 with SSLEngine On, SSLCertificateFile, and SSLCertificateKeyFile. Proxy ordinary requests to http://localhost:3001/ and route WebSocket upgrades to ws://localhost:3001/ using the rewrite rules in the official wiki example.

Apache configuration principles

  • Enable the SSL, proxy, proxy-http, rewrite, and WebSocket-related modules required by your distribution.
  • Set the public hostname in the virtual host and preserve the incoming Host header.
  • Use the SSL certificate and key issued for that hostname.
  • Keep the WebSocket rewrite ahead of the ordinary HTTP proxy rule so an upgrade is not treated as a normal page request.

Certbot can manage Apache certificates and their renewal. After any automated change, test both the dashboard and a live WebSocket connection rather than checking only that the padlock appears.

Option D: Traefik

The official Traefik Docker labels define four essential pieces: a router rule for your hostname, an HTTPS entrypoint, tls=true, and a certificate resolver. The service label points Traefik to Kuma’s internal port 3001. Replace the example hostname and resolver name with values from your Traefik installation.

Traefik deployment checks

  • The Kuma container and Traefik must share a Docker network.
  • The router must listen on the HTTPS entrypoint, not only the HTTP entrypoint.
  • The TLS resolver must be configured in Traefik before the label references it.
  • The service port must be 3001, even if the container is not published on the host.

Traefik handles the WebSocket connection as part of its HTTP proxying, so no Nginx-style manual Upgrade header block is normally required. A failed resolver, wrong network, or incorrect service port will prevent routing before Kuma receives any request.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Option E: Cloudflare Tunnel

Cloudflare Tunnel is an alternative when you want a public HTTPS hostname without exposing inbound ports or maintaining a separate reverse proxy. The official Cloudflare Tunnel instructions for Uptime Kuma describe zero-config SSL and two installation paths:

Rank #4
CanaKit Raspberry Pi 5 Desktop PC with SSD (Fully Assembled) (256 GB SSD)
  • Fully assembled for plug-and-play operation
  • Includes Raspberry Pi 5 with 8GB RAM
  • 256 GB PCIe Pi NVMe SSD (Pre-loaded with Pi 64-Bit OS)
  • M.2 HAT+
  • CanaKit Turbine Black Case for the Pi 5
  • Docker: provide the tunnel token in the documented container settings, then configure the tunnel hostname to reach Kuma’s internal service.
  • Non-Docker: install cloudflared on the host and create the tunnel route to Kuma.

The tunnel replaces the separate Nginx, Caddy, or Traefik layer. Kuma can remain bound to a private address because the tunnel agent makes the outbound connection. You still need to verify that the tunnel route points to the correct internal port and that WebSocket traffic is allowed.

When a tunnel is preferable

  • Your server is behind carrier-grade NAT or a restrictive firewall.
  • You do not want to open ports 80 and 443 to the internet.
  • You already manage DNS and access policies through the tunnel provider.

A tunnel does not remove the need to secure the Kuma account or the host. It changes how traffic reaches the service; it does not make an outdated host, weak password, or publicly reachable port safe.

Trust Proxy setting in Kuma

When Kuma is completely behind your reverse proxy and the native port is firewall-restricted, open Settings → Reverse Proxy → HTTP Headers and set Trust Proxy to Yes. This allows Kuma to trust controlled X-Forwarded-* headers so client IP addresses are represented correctly in logs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do not enable this setting while users can reach Kuma directly and supply their own forwarded headers. Trust Proxy is appropriate only when every request arrives through the proxy or tunnel you control. If you later expose port 3001 for troubleshooting, disable the setting or restore the firewall boundary before allowing untrusted traffic.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Testing HTTPS and WebSockets

Browser test

  1. Visit the exact HTTPS hostname, not the server IP and port 3001.
  2. Sign in and load the dashboard.
  3. Wait for a monitor interval or trigger a safe test event; the status should update without a full-page reload.
  4. Open and close a monitor detail view, then confirm notifications behave normally.

External-network test

Repeat the test from a phone on mobile data or another network. A test performed only from inside the LAN can hide DNS, firewall, certificate-chain, or hairpin-NAT problems.

Best Value
RasTech Raspberry Pi 5 8GB Kit with Active Cooler and Pi5 Case
  • 【What you Get】You will get 1*Pi 5 8GB Single Board,1*RasTech Case,1*Active Cooler,1*Screwdriver,1*Installation instructions,12-month free warranty, lifetime service, 24-hour prompt and friendly response.
  • 【More Connectors】There are two USB 3.0 ports(5Gbps simultaneously) and two USB 2.0 ports, which triple total bandwidth ,support any combination of up to two cameras or displays. Peak SD card performance is doubled through support for the SDR104 high-speed mode. It provides a smooth desktop experience for you. Offer Gigabit Ethernet and a PCIe interface, along with dual-band Wi-Fi and Bluetooth 5.0/BLE wireless capability. The RasTech Pi 5 Kit use the new 27W 5.1V 5A USB-C power connector.
  • 【 Support Dual 4Kp60 Display 】Each of the two microHDMI sockets can control a 4K display at 60 Hertz, now support HDR, offering super HD video for media streaming projects. RPi 5 is the first RPi model that comes with a PCI Express port (PCIe 2.0 x1 with 500 MB/s) to attach SSDs (requires separate M.2 HAT).
  • 【 Excellent Chips And Applications】Pi 5 is a full-size Pi computer using silicon built in-house at Pi. The RP1 “southbridge” provides the bulk of the I/O capabilities for Pi 5. Pi 5 is more friendly and convenient in the development of Internet of Things, Web development, machine identification, automatic control and other electronic equipment applications and network.
  • 【 Faster CPU, Better GPU 】 Pi 5 features a Broadcom BCM2712 64-bit quad-core Arm Cortex-A76 processor running at 2.4GHz, it delivers a 2–3× increase in CPU performance relative to RaspberryPi 4. The 800MHz VideoCore VII GPU is compatible to OpenGL ES 3.1 and Vulkan 1.2, substantial uplift in graphics performance. Pi 5 Offers lightning-fast CPU speed, a PCI Express interface, a Real Time Clock (RTC) and a power button and runs significantly cooler than Pi 4.

What a failure tells you

Symptom Likely cause Action
Certificate warning Hostname does not match the certificate, issuance failed, or the wrong certificate is served Check DNS, the certificate paths or resolver, and the hostname in the proxy configuration.
Page loads but live status never changes WebSocket upgrade is not reaching Kuma For Nginx, verify HTTP/1.1 and the Upgrade and Connection headers. For Apache, verify the WebSocket rewrite. For container proxies, verify network and service labels.
502 or 504 from the proxy Proxy cannot reach port 3001 Check that Kuma is running, listening on the expected address, and reachable from the proxy’s network.
Redirect loop Conflicting HTTP-to-HTTPS redirects or incorrect forwarded-protocol handling Keep one clear HTTPS termination point and inspect the proxy’s forwarded-protocol settings.
Logs show the proxy address for every visitor Forwarded headers are not being passed or Trust Proxy is disabled Preserve the client-IP headers and enable Trust Proxy only after the proxy boundary is enforced.
Direct access to http://server:3001 still works publicly The native listener is exposed outside the private network Remove the port publication or restrict it with a firewall; use the HTTPS hostname for all user access.

Security and maintenance checklist

  • Use a dedicated hostname and a certificate issued for that hostname.
  • Keep Kuma and its operating system updated according to your normal maintenance process.
  • Restrict port 3001 to localhost or the private container network when a proxy is in front.
  • Preserve WebSocket forwarding; HTTPS alone does not guarantee a working Kuma dashboard.
  • Use a strong Kuma administrator password and protect proxy-management credentials separately.
  • Confirm certificate renewal before the first certificate approaches expiration. Caddy, Traefik, Certbot, and Cloudflare Tunnel have different renewal mechanisms, so check the component’s logs.
  • Test from outside the LAN after DNS, firewall, certificate, or proxy changes.
  • Enable Trust Proxy only when forwarded headers are controlled by your proxy or tunnel.

Common design mistakes to avoid

Publishing Kuma under /uptimekuma

This is not a supported normal-subdirectory deployment. Use a hostname such as status.example.com instead.

Forgetting that Kuma is WebSocket-based

A plain HTTP reverse proxy can display the initial HTML while silently breaking live updates. Treat WebSocket forwarding as a required part of the configuration, not an optional optimization.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Opening 3001 “temporarily”

Leaving the native port reachable creates a second access path that may bypass TLS and proxy controls. Close it after testing, and keep the firewall rule aligned with the final architecture.

Trusting forwarded headers too early

Trust Proxy improves client-IP accuracy only when the proxy is authoritative. If direct clients can reach Kuma, they may forge those headers.

Testing only the padlock

A valid certificate proves encryption to the proxy, not that Kuma’s WebSocket, notifications, or backend connectivity work. Always test an authenticated dashboard session and a live monitor update.

Bottom line

Run Uptime Kuma on its normal internal HTTP port, publish it through a dedicated hostname, terminate TLS at Caddy, Nginx, Apache, Traefik, or Cloudflare Tunnel, and preserve WebSocket upgrades. Caddy is the smallest native configuration; Nginx and Apache provide familiar manual control; Traefik fits label-driven Docker environments; and Cloudflare Tunnel avoids a separately managed reverse proxy. Whichever path you choose, keep port 3001 private, test from an external network, and enable Trust Proxy only after the proxy boundary is secure.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$259.95
Bestseller No. 2
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM); Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
$159.99
Bestseller No. 4
CanaKit Raspberry Pi 5 Desktop PC with SSD (Fully Assembled) (256 GB SSD)
CanaKit Raspberry Pi 5 Desktop PC with SSD (Fully Assembled) (256 GB SSD)
Fully assembled for plug-and-play operation; Includes Raspberry Pi 5 with 8GB RAM; 256 GB PCIe Pi NVMe SSD (Pre-loaded with Pi 64-Bit OS)
$339.97

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.