Skip to content

[wrangler] Add custom CA and mTLS configuration to VPC services - #16450

Draft
xortive wants to merge 1 commit into
cloudflare:mainfrom
xortive:malonso/vpc-custom-certificates
Draft

xortive wants to merge 1 commit into
cloudflare:mainfrom
xortive:malonso/vpc-custom-certificates

Conversation

@xortive

@xortive xortive commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Fixes https://jira.cfdata.org/browse/ZTC-3572.

Add custom CA and client certificate references to Workers VPC service create and update commands, reusing the existing certificate uploads.

  • Require an explicit --cert-verification-mode whenever either certificate reference is supplied, including during rotation.
  • Add individual certificate-reference removal. Preserve omitted certificate references and verification mode during replacement updates by reading the current service before PUT.
  • Preserve explicit mode-only settings, including verify_full, after removing the final certificate reference.
  • Reject a custom CA combined with disabled verification. Validate supplied values before API access and retained CA references after GET, before PUT. Client-certificate-only settings may use disabled.
  • Show service certificate IDs and verification mode without exposing private keys or internal certificate-pack IDs.
  • Include a minor changeset with upload, creation, rotation, removal, and inspection examples.

API alignment

Depends on https://jira.cfdata.org/browse/WVPC-272.

TLS settings exist only on the service's top-level tls_settings. Host and resolver networks do not accept TLS fields. This change includes no network TLS flags, inheritance controls, or reset-to-network behavior. Omitting service TLS uses platform defaults; an explicit verify_full-only configuration is valid and retained.


  • Tests
    • Tests included/updated
    • Automated tests not possible - manual testing has been completed as follows:
    • Additional testing not necessary because:
  • Public documentation
    • Cloudflare docs PR(s):
    • Documentation not necessary because:

Command examples are included in the changeset. A separate Cloudflare docs PR has not been opened.

Allow VPC services to reuse uploaded CA and client certificates without resetting TLS settings during full replacement updates.

Require explicit verification mode when setting either certificate, validate custom CA compatibility, and support independent removal while preserving retained references and explicit mode-only settings. Include CLI regression coverage and a minor changeset.
@changeset-bot

changeset-bot Bot commented Oct 23, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d23c12f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
wrangler Minor
@cloudflare/vitest-plugin Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

Copy link
Copy Markdown
Contributor

Hi @xortive. Thanks for taking the time to contribute to Workers SDK.

This PR has been automatically closed because you are not currently a registered (vouched) collaborator for this repository.

AI tools now let our team generate proposed code changes quickly. Reviewing changes, checking that they solve the right problem, and maintaining code quality over time still take substantial care and effort. We therefore limit PRs to registered collaborators so we can focus that effort where it is most useful.

For the majority of external contributors, the most effective way to help is through issues: describing a problem or use case, providing a minimal reproduction, investigating its cause, or helping us verify a fix. Those contributions help us understand what needs to change and are very welcome.

We will take an initial look at this PR and decide whether it is something we want to invest time in reviewing and maintaining. We may reopen it if we decide to proceed, but we cannot guarantee that it will be reopened or receive a full review.

@github-actions github-actions Bot closed this Oct 23, 2026
@github-project-automation github-project-automation Bot moved this from Untriaged to Done in workers-sdk Oct 23, 2026
@james-elicx james-elicx reopened this Oct 23, 2026
@github-project-automation github-project-automation Bot moved this from Done to Untriaged in workers-sdk Oct 23, 2026
@pkg-pr-new

pkg-pr-new Bot commented Oct 23, 2026

Copy link
Copy Markdown
@cloudflare/autoconfig

npm i https://pkg.pr.new/@cloudflare/autoconfig@16450

@cloudflare/build-output-utils

npm i https://pkg.pr.new/@cloudflare/build-output-utils@16450

@cloudflare/codemods

npm i https://pkg.pr.new/@cloudflare/codemods@16450

@cloudflare/config

npm i https://pkg.pr.new/@cloudflare/config@16450

@cloudflare/containers-shared

npm i https://pkg.pr.new/@cloudflare/containers-shared@16450

create-cloudflare

npm i https://pkg.pr.new/create-cloudflare@16450

@cloudflare/deploy-helpers

npm i https://pkg.pr.new/@cloudflare/deploy-helpers@16450

@cloudflare/kv-asset-handler

npm i https://pkg.pr.new/@cloudflare/kv-asset-handler@16450

miniflare

npm i https://pkg.pr.new/miniflare@16450

@cloudflare/pages-functions

npm i https://pkg.pr.new/@cloudflare/pages-functions@16450

@cloudflare/pages-shared

npm i https://pkg.pr.new/@cloudflare/pages-shared@16450

@cloudflare/runtime-types

npm i https://pkg.pr.new/@cloudflare/runtime-types@16450

@cloudflare/unenv-preset

npm i https://pkg.pr.new/@cloudflare/unenv-preset@16450

@cloudflare/vite-plugin

npm i https://pkg.pr.new/@cloudflare/vite-plugin@16450

@cloudflare/vitest-plugin

npm i https://pkg.pr.new/@cloudflare/vitest-plugin@16450

@cloudflare/workers-auth

npm i https://pkg.pr.new/@cloudflare/workers-auth@16450

@cloudflare/workers-editor-shared

npm i https://pkg.pr.new/@cloudflare/workers-editor-shared@16450

@cloudflare/workers-utils

npm i https://pkg.pr.new/@cloudflare/workers-utils@16450

wrangler

npm i https://pkg.pr.new/wrangler@16450

commit: d23c12f

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

Labels

None yet

Projects

Status: Untriaged

Development

Successfully merging this pull request may close these issues.

3 participants