Skip to content

Commit 1d61cb4

Browse files
committed
Add --ca-bundle and AWS_CA_BUNDLE support
Signed-off-by: Yerzhan Mazhkenov <20302932+yerzhan7@users.noreply.github.com>
1 parent a87aabd commit 1d61cb4

24 files changed

Lines changed: 1100 additions & 16 deletions

File tree

Cargo.lock

Lines changed: 54 additions & 3 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 & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ resolver = "2"
1111

1212
[workspace.dependencies]
1313
mountpoint-s3-fs = { version = "0.9.4", path = "./mountpoint-s3-fs" }
14-
mountpoint-s3-client = { version = "0.20.0", path = "./mountpoint-s3-client" }
15-
mountpoint-s3-crt = { version = "0.14.0", path = "./mountpoint-s3-crt" }
16-
mountpoint-s3-crt-sys = { version = "0.16.3", path = "./mountpoint-s3-crt-sys" }
14+
mountpoint-s3-client = { version = "0.20.1", path = "./mountpoint-s3-client" }
15+
mountpoint-s3-crt = { version = "0.14.1", path = "./mountpoint-s3-crt" }
16+
mountpoint-s3-crt-sys = { version = "0.16.4", path = "./mountpoint-s3-crt-sys" }
1717
mountpoint-s3-fuser = { version = "0.1.1", path = "./mountpoint-s3-fuser", features = ["abi-7-28", "libfuse"] }
1818

1919
[profile.release]

doc/CONFIGURATION.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,18 @@ We also support the `AWS_ENDPOINT_URL` environment variable. The endpoint determ
215215
- Use `AWS_ENDPOINT_URL` if provided.
216216
- Fallback to automically inferring the endpoint.
217217

218+
### Custom CA trust bundle
219+
220+
To verify HTTPS connections against a private certificate authority, pass a PEM file containing the CA certificate chain with `--ca-bundle`:
221+
222+
```
223+
mount-s3 amzn-s3-demo-bucket /path/to/mount --ca-bundle /path/to/ca.pem
224+
```
225+
226+
When set, this bundle is used in place of the operating-system default trust store for all HTTPS connections Mountpoint makes.
227+
228+
Mountpoint also honours the `AWS_CA_BUNDLE` environment variable as a fallback when `--ca-bundle` is not provided.
229+
218230
### Data encryption
219231

220232
Amazon S3 supports a number of [server-side encryption types](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html). Mountpoint supports reading and writing to buckets that are configured with Amazon S3 managed keys (SSE-S3), with AWS KMS keys (SSE-KMS), or with dual-layer encryption with AWS KMS keys (DSSE-KMS) as the default encryption method. It does not currently support reading objects encrypted with customer-provided keys (SSE-C).

mountpoint-s3-client/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
## Unreleased
22

3+
* Add `TlsConfig` type and `S3ClientConfig::tls_config()` builder for configuring a custom CA trust store. ([#1834](https://github.com/awslabs/mountpoint-s3/pull/1834))
4+
35
## v0.20.0 (April 28, 2026)
46

57
* Add S3 client error covering failures to create S3 Express session. ([#1793](https://github.com/awslabs/mountpoint-s3/pull/1793))

mountpoint-s3-client/Cargo.toml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "mountpoint-s3-client"
33
# See `/doc/PUBLISHING_CRATES.md` to read how to publish new versions.
4-
version = "0.20.0"
4+
version = "0.20.1"
55
edition = "2024"
66
license = "Apache-2.0"
77
repository = "https://github.com/awslabs/mountpoint-s3"
@@ -44,11 +44,18 @@ aws-sdk-s3 = { version = "1.131.0", default-features = false, features = ["behav
4444
aws-smithy-runtime-api = "1.12.0"
4545
clap = { version = "4.6.1", features = ["derive"] }
4646
ctor = "0.10.1"
47+
http-body-util = "0.1.3"
48+
hyper = { version = "1.9.0", features = ["server", "http1"] }
49+
hyper-util = { version = "0.1.20", features = ["tokio"] }
4750
proptest = "1.11.0"
51+
rcgen = "0.13.2"
52+
rustls = "0.23.34"
53+
rustls-pemfile = "2.2.0"
4854
rusty-fork = "0.3.1"
4955
tempfile = "3.27.0"
5056
test-case = "3.3.1"
51-
tokio = { version = "1.52.1", features = ["rt", "rt-multi-thread", "macros"] }
57+
tokio = { version = "1.52.1", features = ["rt", "rt-multi-thread", "macros", "net", "io-util"] }
58+
tokio-rustls = "0.26.2"
5259
tracing-subscriber = { version = "0.3.23", features = ["fmt", "env-filter"] }
5360

5461
# HACK: we want our own tests to use the mock client, but don't want to enable it for consumers by

mountpoint-s3-client/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ pub mod config {
7373
pub use super::endpoint_config::{AddressingStyle, EndpointConfig, SigningAlgorithm, Uri};
7474
pub use super::s3_crt_client::{
7575
CredentialsProvider, CredentialsProviderStaticOptions, EventLoopGroup, S3ClientAuthConfig, S3ClientConfig,
76+
TlsConfig, TlsConfigValidationError,
7677
};
7778

7879
pub use mountpoint_s3_crt::common::allocator::Allocator;

0 commit comments

Comments
 (0)