[GH-ISSUE #5445] netbird expose : self-hosted NetBird 0.66.0 ERR_SSL_PROTOCOL_ERROR #11430

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

Originally created by @openapphub on GitHub (Feb 25, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5445

Describe the problem

When exposing a local service using netbird expose 18081 on a self-hosted NetBird 0.66.0 instance, the generated proxy URL (https://qprct7whb0nq.proxy.xxx.com) is inaccessible. The browser returns ERR_SSL_PROTOCOL_ERROR. I have attempted to recreate the service more than 5 times, but the issue persists.

To Reproduce

  1. Run on a self-hosted NetBird 0.66.0 instance:
    netbird expose 18081
    
  2. The system returns success message:
    Service exposed successfully!
      Name:     qprct7whb0nq
      URL:      https://qprct7whb0nq.proxy.xxx.com
      Domain:   qprct7whb0nq.proxy.xxx.com
      Protocol: http
      Port:     18081
    
  3. Access the URL in a browser
  4. See error: ERR_SSL_PROTOCOL_ERROR

Expected behavior

The exposed service should be accessible via HTTPS without SSL/TLS errors.

Debug output

  1. Local curl test shows TLS internal error:
curl -k -v -H "Host: netbird.xxx.com" https://localhost/relay/
...
TLSv1.3 (IN), TLS alert, internal error (592)
OpenSSL/3.0.18: error:0A000438:SSL routines::tlsv1 alert internal error
  1. Traefik logs show critical warnings:
WRN Could not find network named "netbird" for container "/netbird-proxy". Maybe you're missing the project's prefix in the label? 
WRN Defaulting to first available network (&{"netbird_netbird" "172.30.0.4"}) for container "/netbird-proxy".
WRN Could not find network named "netbird" for container "/netbird-server". Maybe you're missing the project's prefix in the label?
WRN Could not find network named "netbird" for container "/netbird-dashboard". Maybe you're missing the project's prefix in the label?
  1. Key observations:
  • Traefik cannot find the expected netbird network and falls back to netbird_netbird
  • gRPC communication (signal and management services) works correctly (returns 200)
  • HTTP to HTTPS redirect works correctly (308)
  • The issue occurs during TLS handshake (tlsv1 alert internal error)

Are you using NetBird Cloud?
No, self-hosted (0.66.0)

NetBird version
0.66.0

Is any other VPN software installed?
No

Additional context

This appears to be a Docker network naming issue. Traefik expects the network name to be netbird, but the actual Docker network name is netbird_netbird (with the compose project prefix). While Traefik can automatically fall back to the correct network, this might be affecting TLS certificate generation or routing configuration, leading to HTTPS handshake failures.

The gRPC services (management/signal) are working fine, suggesting the issue is specific to the TLS proxy functionality.

Have you tried these troubleshooting steps?

  • Checked Traefik logs
  • Multiple service recreations
  • Verified gRPC services are working
  • Confirmed port 443 is listening
  • Checked firewall settings
  • Restarted NetBird client
Originally created by @openapphub on GitHub (Feb 25, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5445 **Describe the problem** When exposing a local service using `netbird expose 18081` on a self-hosted NetBird 0.66.0 instance, the generated proxy URL (`https://qprct7whb0nq.proxy.xxx.com`) is inaccessible. The browser returns `ERR_SSL_PROTOCOL_ERROR`. I have attempted to recreate the service more than 5 times, but the issue persists. **To Reproduce** 1. Run on a self-hosted NetBird 0.66.0 instance: ```bash netbird expose 18081 ``` 2. The system returns success message: ``` Service exposed successfully! Name: qprct7whb0nq URL: https://qprct7whb0nq.proxy.xxx.com Domain: qprct7whb0nq.proxy.xxx.com Protocol: http Port: 18081 ``` 3. Access the URL in a browser 4. See error: ERR_SSL_PROTOCOL_ERROR **Expected behavior** The exposed service should be accessible via HTTPS without SSL/TLS errors. **Debug output** 1. Local curl test shows TLS internal error: ```bash curl -k -v -H "Host: netbird.xxx.com" https://localhost/relay/ ... TLSv1.3 (IN), TLS alert, internal error (592) OpenSSL/3.0.18: error:0A000438:SSL routines::tlsv1 alert internal error ``` 2. Traefik logs show critical warnings: ``` WRN Could not find network named "netbird" for container "/netbird-proxy". Maybe you're missing the project's prefix in the label? WRN Defaulting to first available network (&{"netbird_netbird" "172.30.0.4"}) for container "/netbird-proxy". WRN Could not find network named "netbird" for container "/netbird-server". Maybe you're missing the project's prefix in the label? WRN Could not find network named "netbird" for container "/netbird-dashboard". Maybe you're missing the project's prefix in the label? ``` 3. Key observations: - Traefik cannot find the expected `netbird` network and falls back to `netbird_netbird` - gRPC communication (signal and management services) works correctly (returns 200) - HTTP to HTTPS redirect works correctly (308) - The issue occurs during TLS handshake (tlsv1 alert internal error) **Are you using NetBird Cloud?** No, self-hosted (0.66.0) **NetBird version** 0.66.0 **Is any other VPN software installed?** No **Additional context** This appears to be a Docker network naming issue. Traefik expects the network name to be `netbird`, but the actual Docker network name is `netbird_netbird` (with the compose project prefix). While Traefik can automatically fall back to the correct network, this might be affecting TLS certificate generation or routing configuration, leading to HTTPS handshake failures. The gRPC services (management/signal) are working fine, suggesting the issue is specific to the TLS proxy functionality. **Have you tried these troubleshooting steps?** - [x] Checked Traefik logs - [x] Multiple service recreations - [x] Verified gRPC services are working - [x] Confirmed port 443 is listening - [ ] Checked firewall settings - [ ] Restarted NetBird client
saavagebueno added the triage-needed label 2026-08-05 01:29:40 -04:00
Sign in to join this conversation.
No Label triage-needed
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#11430