feat(config): add native-tls feature to support self-signed certificates#5757
feat(config): add native-tls feature to support self-signed certificates#5757schtobia wants to merge 2 commits intozeroclaw-labs:masterfrom
Conversation
|
Hey! CI is failing on Security Audit due to RUSTSEC-2026-0098 and RUSTSEC-2026-0099, two The fix landed in #5786 (merged today). Please merge git fetch upstream
git merge upstream/master
git pushSorry for the noise! |
3be23f6 to
860d110
Compare
|
done. I've also done a minimal update of |
Dismissed due to inline comment placement error. See corrected review.
singlerider
left a comment
There was a problem hiding this comment.
Comprehension summary: Adds an opt-in native-tls feature flag enabling reqwest/native-tls, intended for corporate environments with SSL interception using custom CA certificates.
Security/performance: No permissions or secrets changes. On Linux, native-tls links against system OpenSSL.
| webauthn = ["zeroclaw-runtime/webauthn"] | ||
|
|
||
| # enable native-tls to allow for self-signed certificates | ||
| native-tls = ["reqwest/native-tls"] |
There was a problem hiding this comment.
[blocking] On Linux, native-tls dynamically links against system OpenSSL -- a runtime dependency outside the Rust toolchain. This conflicts with the project core constraint of a single static binary with no runtime deps (AGENTS.md hard reject). The use case (custom CA for corporate SSL interception) is achievable with rustls via reqwest::ClientBuilder::add_root_certificate() and a config-supplied PEM path, keeping the binary fully static. Please either show why rustls cannot satisfy the use case, or implement the custom CA path via rustls instead.
There was a problem hiding this comment.
Okay, but this means changing code on a whole different level. For now this PR can be canceled.
Summary
Describe this PR in 2-5 bullets:
masterfor all contributions):masterzeroclawin all settingsnative-tls, that enables in turnreqwest/native-tlsLabel Snapshot (required)
risk: low|medium|high):risk: lowsize: XS|S|M|L|XL, auto-managed/read-only):size: xscore|agent|channel|config|cron|daemon|doctor|gateway|health|heartbeat|integration|memory|observability|onboard|provider|runtime|security|service|skillforge|skills|tool|tunnel|docs|dependencies|ci|tests|scripts|dev, comma-separated):config<module>: <component>, for examplechannel: telegram,provider: kimi,tool: shell):trusted contributor|experienced contributor|principal contributor|distinguished contributor, auto-managed/read-only; author merged PRs >=5/10/20/50):Change Metadata
bug|feature|refactor|docs|security|chore):featureruntime|provider|channel|memory|security|ci|docs|multi):runtimeLinked Issue
none.
Validation Evidence (required)
Commands and result summary:
cargo fmt --all -- --check cargo clippy --all-targets -- -D warnings cargo testtest.log
Security Impact (required)
Yes/No)NoYes/No)NoYes/No)NoYes/No)NoYes, describe risk and mitigation:Privacy and Data Hygiene (required)
pass|needs-follow-up):Compatibility / Migration
Yes/No)YesYes/No)Yes, theCargo.tomlYes/No)Noi18n Follow-Through (required when docs or user-facing wording changes)
Yes/No)Yes, locale navigation parity updated inREADME*,docs/README*, anddocs/SUMMARY.mdfor supported locales (en,zh-CN,ja,ru,fr,vi)? (Yes/No)Yes, localized runtime-contract docs updated where equivalents exist (minimum forfr/vi:commands-reference,config-reference,troubleshooting)? (Yes/No/N.A.)Yes, Vietnamese canonical docs underdocs/i18n/vi/**synced and compatibility shims underdocs/*.vi.mdvalidated? (Yes/No/N.A.)No/N.A., link follow-up issue/PR and explain scope decision:Human Verification (required)
What was personally validated beyond CI:
Side Effects / Blast Radius (required)
Agent Collaboration Notes (recommended)
AGENTS.md+CONTRIBUTING.md): n/aRollback Plan (required)
Risks and Mitigations
List real risks in this PR (or write
None).