netbird/relay/tls/doc.go
Zoltán Papp bca8944e7a TLS configuration
- handle the same AlPN list
- use dev build tag for debugging purposes
2024-11-27 18:14:17 +01:00

38 lines
1.7 KiB
Go

// Package tls provides utilities for configuring and managing
// Transport Layer Security (TLS) in server environments, with
// a focus on QUIC protocol support and testing configurations.
//
// The package includes functions for cloning and customizing
// TLS configurations as well as generating self-signed
// certificates for development and testing purposes.
//
// Key Features:
//
// - `ServerQUICTLSConfig`: Creates a server-side TLS configuration
// tailored for QUIC protocol with specified or default settings.
// QUIC requires a specific TLS configuration with proper ALPN
// (Application-Layer Protocol Negotiation) support, making the
// TLS settings crucial for establishing secure connections.
//
// - `ClientQUICTLSConfig`: Provides a client-side TLS configuration
// suitable for QUIC protocol. The configuration differs between
// development (insecure testing) and production (strict verification).
//
// - `generateTestTLSConfig`: Generates a self-signed TLS configuration
// for use in local development and testing scenarios.
//
// Usage:
//
// This package provides separate implementations for development
// and production environments. The development implementation
// (guarded by `//go:build dev`) supports testing configurations
// with self-signed certificates and insecure client connections.
// The production implementation (guarded by `//go:build !dev`)
// ensures that valid and secure TLS configurations are supplied
// and used.
//
// The QUIC protocol is highly reliant on properly configured TLS
// settings, and this package ensures that configurations meet the
// requirements for secure and efficient QUIC communication.
package tls