Skip to content

Commit 87faf81

Browse files
dasha-uwujevolk
authored andcommitted
Add webpki roots for reqwest clients. (fixes #296)
1 parent 2e19a30 commit 87faf81

5 files changed

Lines changed: 15 additions & 1 deletion

File tree

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,9 @@ features = ["serde"]
566566
version = "2.0"
567567
default-features = false
568568

569+
[workspace.dependencies.webpki-root-certs]
570+
version = "1.0"
571+
569572
#
570573
# Patches
571574
#

src/main/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ tracing-opentelemetry.optional = true
233233
tracing-opentelemetry.workspace = true
234234
tracing-subscriber.workspace = true
235235
tracing.workspace = true
236+
webpki-root-certs.workspace = true
236237

237238
[dev-dependencies]
238239
criterion.workspace = true

src/service/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ tracing.workspace = true
120120
url.workspace = true
121121
webpage.workspace = true
122122
webpage.optional = true
123+
webpki-root-certs.workspace = true
123124
blurhash.workspace = true
124125
blurhash.optional = true
125126
tuwunel-core.workspace = true

src/service/client/mod.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::{
44
};
55

66
use ipaddress::IPAddress;
7-
use reqwest::{dns::Resolve, redirect};
7+
use reqwest::{Certificate, dns::Resolve, redirect};
88
use tuwunel_core::{Config, Result, either::Either, err, implement, trace};
99

1010
use crate::{service, services::OnceServices};
@@ -141,6 +141,13 @@ fn base(config: &Config) -> Result<reqwest::ClientBuilder> {
141141
.user_agent(tuwunel_core::version::user_agent())
142142
.redirect(redirect::Policy::limited(6))
143143
.danger_accept_invalid_certs(config.allow_invalid_tls_certificates)
144+
.tls_certs_merge(
145+
webpki_root_certs::TLS_SERVER_ROOT_CERTS
146+
.iter()
147+
.map(|der| {
148+
Certificate::from_der(der).expect("certificate must be valid der encoding")
149+
}),
150+
)
144151
.connection_verbose(cfg!(debug_assertions));
145152

146153
#[cfg(feature = "gzip_compression")]

0 commit comments

Comments
 (0)