mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-15 03:11:02 +01:00
bca8944e7a
- handle the same AlPN list - use dev build tag for debugging purposes
38 lines
1.7 KiB
Go
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
|