acme

package
v1.104.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2026 License: BSD-3-Clause Imports: 54 Imported by: 0

Documentation

Overview

Package acme registers the ACME/TLS-cert feature and implements its associated ipnext.Extension. The extension owns the per-LocalBackend ACME serialization mutex, in-flight cert tracking, the refresh loop's cancel func, and the test-only cert override; together with the cert acquisition logic in this package, it is everything tailscaled needs to obtain and renew TLS certificates via ACME.

In builds without ACME support (js or ts_omit_acme), this package is not linked in; ipn/ipnlocal then exposes only stub wrappers that return errNoCerts or no-op.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ARIReplacesAllower added in v1.104.1

type ARIReplacesAllower interface {
	// ShouldUseARIReplacesForRenewal reports whether the renewal order
	// for domain should carry the ARI "replaces" hint. It is advisory:
	// a non-nil error means eligibility could not be determined, not
	// that the hint should be skipped, and callers fail open (use the
	// hint) in that case.
	ShouldUseARIReplacesForRenewal(domain string) (bool, error)
}

ARIReplacesAllower is optionally implemented by state stores to opt out of the ARI "replaces" hint on a per-domain basis at renewal time. When implemented and returning false, the renewal path submits a plain newOrder instead of claiming renewal exemption via "replaces".

Used by the k8s cert-share store to prevent submitting a "replaces" claim that Let's Encrypt would reject because the current ACME account did not issue the previous cert (which can happen when a shared per-tailnet account key is adopted after a cert was already issued by a per-pod account). See #18251.

type TLSCertKeyReader

type TLSCertKeyReader interface {
	ReadTLSCertAndKey(domain string) ([]byte, []byte, error)
}

TLSCertKeyReader is an interface implemented by state stores where it makes sense to read the TLS cert and key in a single operation that can be distinguished from generic state value reads. Currently this is only implemented by the kubestore.Store, which, in some cases, needs to read cert and key from a non-cached TLS Secret.

type TLSCertKeyWriter

type TLSCertKeyWriter interface {
	WriteTLSCertAndKey(domain string, cert, key []byte) error
}

TLSCertKeyWriter is an interface implemented by state stores that can write the TLS cert and key in a single atomic operation. Currently this is only implemented by the kubestore.StoreKube.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL