[GH-ISSUE #5520] [Feature Request] Add option to skip TLS certificate verification for backend services in reverse proxy #10700

Open
opened 2026-08-05 01:26:58 -04:00 by saavagebueno · 0 comments
Owner

Originally created by @n0pashkov on GitHub (Mar 6, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5520

Problem

When using the NetBird reverse proxy (netbirdio/reverse-proxy) to expose internal services (e.g., Proxmox VE, self-hosted apps), the proxy connects to the backend via the peer's NetBird VPN IP (e.g., 100.88.43.205). However, most internal services use self-signed certificates issued for their local/LAN IP (e.g., 10.0.0.11), not the NetBird VPN IP.

This causes the following error:

tls: failed to verify certificate: x509: certificate is valid for 127.0.0.1, ::1, 10.0.0.11, not 100.88.43.205

Why This Matters

The traffic between the reverse proxy and the backend already travels over an encrypted WireGuard tunnel, so TLS certificate verification against the backend adds friction without meaningful security benefit in this scenario.

Use cases affected:

  • Proxmox VE (forced HTTPS on port 8006 with self-signed cert)
  • Any self-hosted service with a self-signed certificate
  • Containers/VMs with their own HTTPS endpoints behind a NetBird peer

Proposed Solution

Add a per-service toggle in the dashboard to skip TLS certificate verification for the backend connection, similar to how other reverse proxies handle this:

  • Nginx: proxy_ssl_verify off
  • Traefik: serversTransport.insecureSkipVerify = true
  • Caddy: transport http { tls_insecure_skip_verify }

A simple toggle in the service settings UI would be sufficient:

☐ Skip TLS verification — Do not verify the backend's TLS certificate
(only recommended for backends accessible exclusively over the WireGuard tunnel)

Environment

  • NetBird reverse proxy version: 0.66.2
  • Self-hosted deployment
Originally created by @n0pashkov on GitHub (Mar 6, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5520 ## Problem When using the NetBird reverse proxy (`netbirdio/reverse-proxy`) to expose internal services (e.g., Proxmox VE, self-hosted apps), the proxy connects to the backend via the peer's NetBird VPN IP (e.g., `100.88.43.205`). However, most internal services use self-signed certificates issued for their local/LAN IP (e.g., `10.0.0.11`), not the NetBird VPN IP. This causes the following error: ``` tls: failed to verify certificate: x509: certificate is valid for 127.0.0.1, ::1, 10.0.0.11, not 100.88.43.205 ``` ## Why This Matters The traffic between the reverse proxy and the backend already travels over an encrypted WireGuard tunnel, so TLS certificate verification against the backend adds friction without meaningful security benefit in this scenario. Use cases affected: - Proxmox VE (forced HTTPS on port 8006 with self-signed cert) - Any self-hosted service with a self-signed certificate - Containers/VMs with their own HTTPS endpoints behind a NetBird peer ## Proposed Solution Add a per-service toggle in the dashboard to skip TLS certificate verification for the backend connection, similar to how other reverse proxies handle this: - Nginx: `proxy_ssl_verify off` - Traefik: `serversTransport.insecureSkipVerify = true` - Caddy: `transport http { tls_insecure_skip_verify }` A simple toggle in the service settings UI would be sufficient: **☐ Skip TLS verification** — Do not verify the backend's TLS certificate *(only recommended for backends accessible exclusively over the WireGuard tunnel)* ## Environment - NetBird reverse proxy version: 0.66.2 - Self-hosted deployment
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#10700