From 7034b1c8b690f2b135e5e20abdafdf7ef3c6fa0e Mon Sep 17 00:00:00 2001 From: Jeff Martin Date: Mon, 26 May 2025 10:35:43 -0400 Subject: [PATCH] hack in flag to skip some domains when doing auto-TLS --- ferron/src/server.rs | 8 +++++++- ferron/src/util/validate_config.rs | 17 ++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/ferron/src/server.rs b/ferron/src/server.rs index 667056f2..18d559ad 100644 --- a/ferron/src/server.rs +++ b/ferron/src/server.rs @@ -1143,7 +1143,13 @@ async fn server_event_loop( if let Some(host) = host_yaml.as_hash() { if let Some(domain_yaml) = host.get(&Yaml::from_str("domain")) { if let Some(domain) = domain_yaml.as_str() { - if !domain.contains("*") { + // check if we even want auto-TLS for this domain + let want_auto_tls = host + .get(&Yaml::from_str("enableAutomaticTLS")) + .and_then(|enable| enable.as_bool()) + .unwrap_or(true); + + if want_auto_tls && !domain.contains("*") { acme_domains.push(domain); } } diff --git a/ferron/src/util/validate_config.rs b/ferron/src/util/validate_config.rs index cfa052d1..3b6694a0 100644 --- a/ferron/src/util/validate_config.rs +++ b/ferron/src/util/validate_config.rs @@ -727,17 +727,12 @@ pub fn validate_config( Err(anyhow::anyhow!("Invalid directory listing enabling option"))? } - if used_properties.contains("enableAutomaticTLS") { - if !is_global { - Err(anyhow::anyhow!( - "Automatic TLS enabling configuration is not allowed in host configuration" - ))? - } - if config["enableAutomaticTLS"].as_bool().is_none() { - Err(anyhow::anyhow!( - "Invalid automatic TLS enabling option value" - ))? - } + if used_properties.contains("enableAutomaticTLS") + && config["enableAutomaticTLS"].as_bool().is_none() + { + Err(anyhow::anyhow!( + "Invalid automatic TLS enabling option value" + ))? } if used_properties.contains("useAutomaticTLSHTTPChallenge") {