diff --git a/tonic/src/transport/service/connector.rs b/tonic/src/transport/service/connector.rs index c4d216b83..c1c99dfae 100644 --- a/tonic/src/transport/service/connector.rs +++ b/tonic/src/transport/service/connector.rs @@ -80,9 +80,17 @@ where #[cfg(feature = "tls-roots-common")] let tls = self.tls_or_default(uri.scheme_str(), uri.host()); + let is_https = uri.scheme_str() == Some("https"); let connect = self.inner.make_connection(uri); Box::pin(async move { + #[cfg(not(feature = "tls"))] + { + if is_https && tls.is_some() { + return Err("connecting to HTTPS without TLS enabled".to_owned().into()); + } + } + let io = connect.await?; #[cfg(feature = "tls")] @@ -90,6 +98,8 @@ where if let Some(tls) = tls { let conn = tls.connect(io).await?; return Ok(BoxedIo::new(conn)); + } else if is_https { + return Err("connecting to HTTPS without TLS enabled".to_owned().into()); } }