Add webpki roots for reqwest clients. (fixes #296)
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -5229,6 +5229,7 @@ dependencies = [
|
|||||||
"tuwunel_macros",
|
"tuwunel_macros",
|
||||||
"tuwunel_router",
|
"tuwunel_router",
|
||||||
"tuwunel_service",
|
"tuwunel_service",
|
||||||
|
"webpki-root-certs",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -5448,6 +5449,7 @@ dependencies = [
|
|||||||
"tuwunel_database",
|
"tuwunel_database",
|
||||||
"url",
|
"url",
|
||||||
"webpage",
|
"webpage",
|
||||||
|
"webpki-root-certs",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
@@ -566,6 +566,9 @@ features = ["serde"]
|
|||||||
version = "2.0"
|
version = "2.0"
|
||||||
default-features = false
|
default-features = false
|
||||||
|
|
||||||
|
[workspace.dependencies.webpki-root-certs]
|
||||||
|
version = "1.0"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Patches
|
# Patches
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ tracing-opentelemetry.optional = true
|
|||||||
tracing-opentelemetry.workspace = true
|
tracing-opentelemetry.workspace = true
|
||||||
tracing-subscriber.workspace = true
|
tracing-subscriber.workspace = true
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
|
webpki-root-certs.workspace = true
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
criterion.workspace = true
|
criterion.workspace = true
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ tracing.workspace = true
|
|||||||
url.workspace = true
|
url.workspace = true
|
||||||
webpage.workspace = true
|
webpage.workspace = true
|
||||||
webpage.optional = true
|
webpage.optional = true
|
||||||
|
webpki-root-certs.workspace = true
|
||||||
blurhash.workspace = true
|
blurhash.workspace = true
|
||||||
blurhash.optional = true
|
blurhash.optional = true
|
||||||
tuwunel-core.workspace = true
|
tuwunel-core.workspace = true
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use std::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use ipaddress::IPAddress;
|
use ipaddress::IPAddress;
|
||||||
use reqwest::{dns::Resolve, redirect};
|
use reqwest::{Certificate, dns::Resolve, redirect};
|
||||||
use tuwunel_core::{Config, Result, either::Either, err, implement, trace};
|
use tuwunel_core::{Config, Result, either::Either, err, implement, trace};
|
||||||
|
|
||||||
use crate::{service, services::OnceServices};
|
use crate::{service, services::OnceServices};
|
||||||
@@ -141,6 +141,13 @@ fn base(config: &Config) -> Result<reqwest::ClientBuilder> {
|
|||||||
.user_agent(tuwunel_core::version::user_agent())
|
.user_agent(tuwunel_core::version::user_agent())
|
||||||
.redirect(redirect::Policy::limited(6))
|
.redirect(redirect::Policy::limited(6))
|
||||||
.danger_accept_invalid_certs(config.allow_invalid_tls_certificates)
|
.danger_accept_invalid_certs(config.allow_invalid_tls_certificates)
|
||||||
|
.tls_certs_merge(
|
||||||
|
webpki_root_certs::TLS_SERVER_ROOT_CERTS
|
||||||
|
.iter()
|
||||||
|
.map(|der| {
|
||||||
|
Certificate::from_der(der).expect("certificate must be valid der encoding")
|
||||||
|
}),
|
||||||
|
)
|
||||||
.connection_verbose(cfg!(debug_assertions));
|
.connection_verbose(cfg!(debug_assertions));
|
||||||
|
|
||||||
#[cfg(feature = "gzip_compression")]
|
#[cfg(feature = "gzip_compression")]
|
||||||
|
|||||||
Reference in New Issue
Block a user