From 4a3f65172c5be8c8745343e2495f7b1b038c7b2c Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Wed, 13 Feb 2019 11:03:02 +0100 Subject: [PATCH] client: use hyper-tls for now Signed-off-by: Wolfgang Bumiller --- Cargo.toml | 1 + src/client/http_client.rs | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ef53db38..13ede986 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,6 +23,7 @@ tokio-tls = "0.2.1" native-tls = "0.2.2" http = "0.1" hyper = "0.12" +hyper-tls = "0.3" lazy_static = "1.1" regex = "1.0" libc = "0.2" diff --git a/src/client/http_client.rs b/src/client/http_client.rs index 22f1857b..d90407e4 100644 --- a/src/client/http_client.rs +++ b/src/client/http_client.rs @@ -22,8 +22,18 @@ impl HttpClient { } } - fn run_request(request: Request) -> Result { - let client = Client::new(); + fn run_request( + request: Request, + ) -> Result { + let mut builder = native_tls::TlsConnector::builder(); + // FIXME: We need a CLI option for this! + builder.danger_accept_invalid_certs(true); + let tlsconnector = builder.build()?; + let mut httpc = hyper::client::HttpConnector::new(1); + httpc.enforce_http(false); // we want https... + let mut https = hyper_tls::HttpsConnector::from((httpc, tlsconnector)); + https.https_only(true); // force it! + let client = Client::builder().build::<_, Body>(https); let (tx, rx) = std::sync::mpsc::channel(); @@ -65,7 +75,7 @@ impl HttpClient { pub fn get(&self, path: &str) -> Result { - let url: Uri = format!("http://{}:8007/{}", self.server, path).parse()?; + let url: Uri = format!("https://{}:8007/{}", self.server, path).parse()?; let request = Request::builder() .method("GET") @@ -78,7 +88,7 @@ impl HttpClient { pub fn upload(&self, content_type: &str, body: Body, path: &str) -> Result { - let url: Uri = format!("http://{}:8007/{}", self.server, path).parse()?; + let url: Uri = format!("https://{}:8007/{}", self.server, path).parse()?; let request = Request::builder() .method("POST")