Skip to content

crypto: migrate environmentd TLS to rustls - #36089

Draft
jasonhernandez wants to merge 2 commits into
mainfrom
jason/crypto-tls-5-environmentd
Draft

jasonhernandez wants to merge 2 commits into
mainfrom
jason/crypto-tls-5-environmentd

Conversation

@jasonhernandez

@jasonhernandez jasonhernandez commented Apr 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Split 5/6 of the TLS migration from OpenSSL to rustls. This is the largest split.

Migrates environmentd's HTTP server and comprehensive TLS test infrastructure:

  • mz-environmentd (main): Switch --tls-cert/--tls-key loading to use rustls via mz-tls-util.
  • mz-environmentd (http): Replace hyper-openssl HTTPS connector with hyper-rustls for console proxy. Drop hyper-tls dependency.
  • mz-environmentd (test_util): Rewrite test TLS certificate generation from openssl to rcgen. Build rustls ClientConfig for test HTTPS/pgwire clients.
  • mz-environmentd (tests/auth.rs): Migrate all auth tests from openssl cert manipulation to rcgen/rustls-pemfile. This is the largest file change (~540 lines).
  • mz-environmentd (tests/server.rs): Update server TLS tests to use rustls clients.

Dependency chain

#35940 → split 1 (#36085) → split 2 (#36086) → this PR

Test plan

  • cargo check passes for mz-environmentd
  • cargo test -p mz-environmentd -- auth passes
  • cargo test -p mz-environmentd -- server passes
  • HTTPS and pgwire TLS connections work end-to-end

🤖 Generated with Claude Code

Part of SEC-219.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for opening this PR! Here are a few tips to help make the review process smooth for everyone.

PR title guidelines

  • Use imperative mood: "Fix X" not "Fixed X" or "Fixes X"
  • Be specific: "Fix panic in catalog sync when controller restarts" not "Fix bug" or "Update catalog code"
  • Prefix with area if helpful: compute: , storage: , adapter: , sql:

Pre-merge checklist

  • The PR title is descriptive and will make sense in the git log.
  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).

jasonhernandez and others added 2 commits July 7, 2026 00:48
Add rustls, aws-lc-rs, hyper-rustls, rcgen, tokio-rustls workspace deps
and the mz-ore `crypto` feature with FIPS-aware CryptoProvider helpers.
Azure SDK forks patched to support reqwest-rustls-no-provider.
Removes the rustls ban from deny.toml.

Does NOT bump LaunchDarkly SDK (deferred to end of migration).

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Switch environmentd HTTP server, test infrastructure, and auth tests
from openssl to rustls.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant