Quick start
October 31, 2025 ยท View on GitHub
Before deploying the webhook you need to install cert-manager. You can find the official install instructions here.
-
Create a read+write API token in the Hetzner Console as described in the official guide.
-
Create a secret containing the API token. If you plan to create a namespace scoped
Issuer, place the secret in the Issuers namespace. If you plan to configure aClusterIssuer, place the secret in the configured cluster resource namespace, defaulting tocert-manager.
# secret.yml
apiVersion: v1
kind: Secret
metadata:
name: hetzner
namespace: cert-manager
stringData:
token: <HETZNER_TOKEN>
Apply the secret:
kubectl apply -f secret.yml
- Add the Helm repository:
helm repo add hcloud https://charts.hetzner.cloud
helm repo update hcloud
- Install the webhook:
helm install cert-manager-webhook-hetzner hcloud/cert-manager-webhook-hetzner -n cert-manager
-
Configure an
IssuerorClusterIssuerto suit your needs, as described in the official cert-manager documentation. -
Configure the Hetzner webhook as a DNS01 solver at your
IssuerorClusterIssuer(reference):
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: cluster-issuer
spec:
acme:
# [...]
solvers:
- dns01:
webhook:
solverName: hetzner
groupName: acme.hetzner.com
config:
tokenSecretKeyRef:
name: hetzner
key: token
- You can now start requesting certificates.