summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tools/unitctl/Cargo.lock69
-rw-r--r--tools/unitctl/unit-client-rs/Cargo.toml2
-rw-r--r--tools/unitctl/unit-client-rs/src/lib.rs1
-rw-r--r--tools/unitctl/unit-client-rs/src/unit_client.rs11
4 files changed, 77 insertions, 6 deletions
diff --git a/tools/unitctl/Cargo.lock b/tools/unitctl/Cargo.lock
index 58f07b8b..b8af9fc6 100644
--- a/tools/unitctl/Cargo.lock
+++ b/tools/unitctl/Cargo.lock
@@ -837,6 +837,24 @@ dependencies = [
]
[[package]]
+name = "hyper-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "399c78f9338483cb7e630c8474b07268983c6bd5acee012e4211f9f7bb21b070"
+dependencies = [
+ "futures-util",
+ "http 0.2.8",
+ "hyper 0.14.27",
+ "log",
+ "rustls 0.22.4",
+ "rustls-native-certs",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls",
+ "webpki-roots",
+]
+
+[[package]]
name = "hyper-tls"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1502,6 +1520,20 @@ dependencies = [
[[package]]
name = "rustls"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls"
version = "0.23.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afabcee0551bd1aa3e18e5adbf2c0544722014b899adb31bd186ec638d3da97e"
@@ -1516,6 +1548,19 @@ dependencies = [
]
[[package]]
+name = "rustls-native-certs"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile",
+ "rustls-pki-types",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
name = "rustls-pemfile"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1918,6 +1963,17 @@ dependencies = [
]
[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
name = "tokio-util"
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2028,12 +2084,12 @@ dependencies = [
"futures",
"hex",
"hyper 0.14.27",
- "hyper-tls",
+ "hyper-rustls",
"hyperlocal",
"pbr",
"rand",
"regex",
- "rustls",
+ "rustls 0.23.5",
"serde",
"serde_json",
"sysinfo",
@@ -2203,6 +2259,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
[[package]]
+name = "webpki-roots"
+version = "0.26.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
+dependencies = [
+ "rustls-pki-types",
+]
+
+[[package]]
name = "which"
version = "4.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/tools/unitctl/unit-client-rs/Cargo.toml b/tools/unitctl/unit-client-rs/Cargo.toml
index 6d873417..6518f620 100644
--- a/tools/unitctl/unit-client-rs/Cargo.toml
+++ b/tools/unitctl/unit-client-rs/Cargo.toml
@@ -15,7 +15,7 @@ default = ["serde_json/preserve_order"]
[dependencies]
custom_error = "1.9"
hyper = { version = "0.14", features = ["stream"] }
-hyper-tls = "0.5"
+hyper-rustls = { version = "0.25.0", features = ["rustls-native-certs", "webpki-roots"] }
hyperlocal = "0.8"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
diff --git a/tools/unitctl/unit-client-rs/src/lib.rs b/tools/unitctl/unit-client-rs/src/lib.rs
index a0933f42..59dd2681 100644
--- a/tools/unitctl/unit-client-rs/src/lib.rs
+++ b/tools/unitctl/unit-client-rs/src/lib.rs
@@ -1,7 +1,6 @@
extern crate custom_error;
extern crate futures;
extern crate hyper;
-extern crate hyper_tls;
extern crate hyperlocal;
extern crate serde;
extern crate serde_json;
diff --git a/tools/unitctl/unit-client-rs/src/unit_client.rs b/tools/unitctl/unit-client-rs/src/unit_client.rs
index 3d09e67a..bc6cc4f7 100644
--- a/tools/unitctl/unit-client-rs/src/unit_client.rs
+++ b/tools/unitctl/unit-client-rs/src/unit_client.rs
@@ -9,7 +9,7 @@ use hyper::body::{Buf, HttpBody};
use hyper::client::{HttpConnector, ResponseFuture};
use hyper::Error as HyperError;
use hyper::{http, Body, Client, Request};
-use hyper_tls::HttpsConnector;
+use hyper_rustls::{HttpsConnectorBuilder, HttpsConnector};
use hyperlocal::{UnixClientExt, UnixConnector};
use serde::{Deserialize, Serialize};
@@ -185,7 +185,14 @@ impl UnitClient {
}
pub fn new_http(control_socket: ControlSocket) -> Self {
- let remote_client = Client::builder().build(HttpsConnector::new());
+ let remote_client = Client::builder()
+ .build(HttpsConnectorBuilder::default()
+ .with_native_roots()
+ .unwrap_or_else(|_| HttpsConnectorBuilder::default()
+ .with_webpki_roots())
+ .https_or_http()
+ .enable_http1()
+ .wrap_connector(HttpConnector::new()));
Self {
control_socket,
client: Box::from(RemoteClient::Tcp { client: remote_client }),