diff --git a/proxmox-http/Cargo.toml b/proxmox-http/Cargo.toml index a15c3367..bc79c53d 100644 --- a/proxmox-http/Cargo.toml +++ b/proxmox-http/Cargo.toml @@ -17,11 +17,12 @@ base64 = { workspace = true, optional = true } futures = { workspace = true, optional = true } http = { workspace = true, optional = true } hyper = { workspace = true, optional = true } +native-tls = { workspace = true, optional = true } openssl = { version = "0.10", optional = true } serde_json = { workspace = true, optional = true } tokio = { workspace = true, features = [], optional = true } tokio-openssl = { workspace = true, optional = true } -ureq = { version = "2.4", features = ["native-certs"], optional = true } +ureq = { version = "2.4", features = ["native-certs", "native-tls"], optional = true, default-features = false } url = { workspace = true, optional = true } proxmox-async = { workspace = true, optional = true } @@ -61,7 +62,7 @@ client = [ "rate-limited-stream", "tokio?/io-util", ] -client-sync = [ "client-trait", "http-helpers", "dep:ureq" ] +client-sync = [ "client-trait", "http-helpers", "dep:ureq", "dep:native-tls" ] client-trait = [ "dep:http" ] http-helpers = [ "dep:base64", "dep:http", "dep:proxmox-sys", "dep:serde_json", "dep:url" ] websocket = [ diff --git a/proxmox-http/src/client/sync.rs b/proxmox-http/src/client/sync.rs index 195ce98f..fb10f5be 100644 --- a/proxmox-http/src/client/sync.rs +++ b/proxmox-http/src/client/sync.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; use std::io::Read; +use std::sync::Arc; use anyhow::Error; use http::Response; @@ -21,6 +22,9 @@ impl Client { fn agent(&self) -> Result { let mut builder = ureq::AgentBuilder::new(); + let connector = Arc::new(native_tls::TlsConnector::new()?); + builder = builder.tls_connector(connector); + builder = builder.user_agent(self.options.user_agent.as_deref().unwrap_or(concat!( "proxmox-sync-http-client/", env!("CARGO_PKG_VERSION")