Add webpki roots for reqwest clients. (fixes #296)

This commit is contained in:
dasha_uwu
2026-02-11 03:17:06 +05:00
committed by Jason Volk
parent 2e19a30ff2
commit 87faf818ff
5 changed files with 15 additions and 1 deletions

2
Cargo.lock generated
View File

@@ -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]]

View File

@@ -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
# #

View File

@@ -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

View File

@@ -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

View File

@@ -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")]