feat: add HTTPS/TLS server support via rustls
Add optional TLS support for the server using axum-server with the tls-rustls feature. When --server-cert and --server-key are provided (and tls feature is enabled), the server binds with TLS instead of plain HTTP. Changes: - Add axum-server dependency with optional tls-rustls feature - New 'tls' feature flag (independent of 'server') - --server-cert/--server-key CLI args gated behind tls feature - ServerConfig extended with cert_file/key_file fields - Conditional TLS/HTTP binding in server mod.rs - Fix PathBuf::to_str().unwrap() panic risk -> to_string_lossy() - Update README.md and DESIGN.md with TLS documentation
This commit is contained in:
10
src/args.rs
10
src/args.rs
@@ -75,6 +75,16 @@ pub struct ModeArgs {
|
||||
#[arg(help_heading("Server Options"), long, env("KEEP_SERVER_PORT"))]
|
||||
#[arg(help("Server port to bind to"))]
|
||||
pub server_port: Option<u16>,
|
||||
|
||||
#[cfg(feature = "tls")]
|
||||
#[arg(help_heading("Server Options"), long, env("KEEP_SERVER_CERT"))]
|
||||
#[arg(help("Path to TLS certificate file (PEM) for HTTPS"))]
|
||||
pub server_cert: Option<PathBuf>,
|
||||
|
||||
#[cfg(feature = "tls")]
|
||||
#[arg(help_heading("Server Options"), long, env("KEEP_SERVER_KEY"))]
|
||||
#[arg(help("Path to TLS private key file (PEM) for HTTPS"))]
|
||||
pub server_key: Option<PathBuf>,
|
||||
}
|
||||
|
||||
/// Struct for item-specific arguments, such as compression and plugins.
|
||||
|
||||
Reference in New Issue
Block a user