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

Closed
opened 2026-08-05 01:30:27 -04:00 by saavagebueno · 1 comment
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
Author
Owner

@schmidt-cw commented on GitHub (Mar 9, 2026):

It looks like in the version 0.66.3 update a new proxy environment variable was added to skip TLS verification for internal network resources. This change appears a universal option affecting all internal network resources when implemented. I agree that this feature proposal be on a per service basis instead and toggled (configured) during the Add Service workflow in the proxy menu. This provides more granular control and requires the administrator to assess risks for each resource being exposed through the proxy.

<!-- gh-comment-id:4028091751 --> @schmidt-cw commented on GitHub (Mar 9, 2026): It looks like in the version 0.66.3 update a new proxy environment variable was added to skip TLS verification for internal network resources. This change appears a universal option affecting all internal network resources when implemented. I agree that this feature proposal be on a per service basis instead and toggled (configured) during the Add Service workflow in the proxy menu. This provides more granular control and requires the administrator to assess risks for each resource being exposed through the proxy.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#11676