Skip to content

Support client certificate authentication (mTLS) for registry access #1344

Closed as not planned

Description

@senyahnoj

Is your feature request related to a problem?

In environments where OCI registries are secured using mutual TLS (mTLS), Notation CLI notation verify cannot authenticate to the registry.

While container runtimes (e.g. containerd) can successfully pull images using mTLS, Notation fails during registry interaction (e.g. GET /v2/) because it does not present a client certificate. This typically results in TLS handshake failures or HTTP 400/403 responses from reverse proxies or ingress controllers.

As a result, Notation cannot:

  • resolve image manifests
  • retrieve OCI referrers (signatures)
  • perform signature verification

This creates a gap where image pulls succeed but signature verification cannot be enforced.

What solution do you propose?

Add support for client certificate authentication (mTLS) when interacting with registries.

For example, via CLI flags:

notation verify <image> \
  --cert client.crt \
  --key client.key \
  --cacert ca.crt

Alternatively (or additionally), support:

  • configuration-based TLS settings (per registry)
  • reuse of existing container runtime configuration (e.g. /etc/containerd/certs.d)
  • integration with underlying ORAS transport configuration

This would allow Notation to authenticate to mTLS-protected registries and complete verification workflows.

What alternatives have you considered?

  • Introducing a reverse proxy to terminate mTLS and expose a non-mTLS endpoint for Notation
    → adds architectural complexity and weakens end-to-end security guarantees
  • Using different registry authentication mechanisms (basic auth, tokens)
    → not always possible in environments where mTLS is mandated
  • Running verification through custom services or wrappers that handle mTLS
    → increases operational overhead and complexity
  • Relying on Kubernetes admission controllers (e.g. Kyverno)
    → these still require registry access and face the same limitation

None of these provide a clean or native solution.

Any additional context?

This issue is particularly relevant in Kubernetes environments where:

  • container runtimes (e.g. containerd) are configured with mTLS for image pulls
  • Notation is used for supply chain security and signature verification
  • admission policies aim to enforce signed images

In these setups, there is currently a mismatch:

  • image pulls succeed (mTLS supported by runtime)
  • signature verification fails (mTLS not supported by Notation)

Supporting mTLS in Notation would improve compatibility with secure, enterprise-grade registry deployments and enable consistent enforcement of image signing policies.

Activity

  1. changed the title [-]Feature request: Support client certificate authentication (mTLS) for registry access[/-] [+]Support client certificate authentication (mTLS) for registry access[/+] on Apr 9, 2026
  2. yizha1 commented on Apr 9, 2026

    @yizha1
    Contributor

    Thanks @senyahnoj. Would you like to contribute to this enhancement?

  3. github-actions commented on Jun 9, 2026

    @github-actions

    This issue is stale because it has been opened for 60 days with no activity. Remove stale label or comment. Otherwise, it will be closed in 30 days.

  4. github-actions commented on Jul 10, 2026

    @github-actions

    Issue closed due to no activity in the past 30 days.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions