Skip to content

Allow explicit verified TLS contexts for private certificate authorities - #207

Merged
rmcdaniel merged 6 commits into
mainfrom
fix/166-private-ca-trust
Oct 23, 2026
Merged

rmcdaniel merged 6 commits into
mainfrom
fix/166-private-ca-trust

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Python clients cannot select a private certificate authority without process-wide environment changes. Add tls_context, accepting a verified ssl.SSLContext, to async and synchronous clients. Query-poller clones, Nexus namespace views and runtime-owned payload transfers retain it. Default certifi/environment behavior stays unchanged; contexts with disabled certificate or hostname verification are rejected.

The guide shows starting with certifi's public roots and adding a private CA, explains environment precedence and distinguishes separately configured storage drivers. It explicitly marks the new option unreleased.

Addresses #166. The original unchanged-source controls produce 12 failures and two passing default-trust controls. Current HTTPS coverage has 16 passing controls for explicit trust, public-root preservation, hostname mismatch, verification modes, sync forwarding, cloned query polling and actual upload/cold-client fetch. The original combined TLS/sync/Nexus set passes 63 tests. Functional candidate 6719b1b8 passes full local Python 3.12: 3,153 tests / two skips / 105 integration deselections / one existing fork warning, 126.58 seconds. Ruff and mypy on 36 source files pass.

CodeQL identified the test server's unspecified minimum TLS version; the fixture now explicitly requires TLS 1.2. Current-target a919f8f1 incorporates main 6752909e and passes 75 combined TLS/backoff controls. Fresh whole-head hosted qualification remains required. Supported-version CI requires OpenSSL, preserving existing trust bootstrap, permissions, guards and budgets.

Publication, normally installed acceptance and removal of the unreleased notices remain required after the existing #197 registry-side setup clears. No version or release tag changed.

Comment thread tests/test_tls_trust.py Fixed
@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel merged commit 017528b into main Oct 23, 2026
18 checks passed
@rmcdaniel
rmcdaniel deleted the fix/166-private-ca-trust branch October 23, 2026 09:43
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.

2 participants