Manage TLS Certificates using IONOS Cloud DNS Webhook for cert-manager
This tutorial will guide you through managing TLS certificates using the IONOS Cloud DNS Webhook for cert-manager. Following these steps, you can secure your Kubernetes cluster workloads with valid TLS certificates that are automatically renewed before they expire.
Target audience
This tutorial is intended to help both developers and technical decision-makers.
What you will learn
You will learn how to automate the issuance and renewal of TLS certificates for your Kubernetes workloads using cert-manager and the IONOS Cloud DNS Webhook. This tutorial covers the complete setup process, including configuring DNS zones, secrets, and certificate resources for secure application deployment.
Before you begin
You must have the following:
An IONOS account.
A domain name registered and managed by IONOS Cloud DNS.
A Kubernetes cluster set up. If you have not yet set up a Kubernetes cluster, follow the instructions in Set Up a Kubernetes Cluster to create one.
A
kubectlinstalled and configured to interact with your Kubernetes cluster. If you have not downloaded thekubeconfigfile yet, follow the instructions in Download Kubeconfig File to download it.A
cert-managerinstalled in your Kubernetes cluster. If not, you can install it by following the instructions on the cert-manager Installation guide.
Procedure
Install cert-manager
cert-managerEnsure that cert-manager is installed in your Kubernetes cluster. For more information about the instructions, refer to the cert-manager Installation guide.
Note: This tutorial uses cert-manager version v1.17.0; please always use the latest version of cert-manager.
Execute the following command, if it is not already installed:
Create a secret for the IONOS Cloud API Token
Create a Kubernetes secret to store your IONOS Cloud API token. Run the following command to create the secret:
Note: Replace IONOS Cloud Token with your actual IONOS Cloud token. For more information on managing authentication tokens, see Manage Authentication Tokens. Ensure that the token is refreshed so that certificates can be renewed automatically.
Create a DNS Zone in IONOS Cloud DNS
If you have not yet created a primary zone in IONOS Cloud DNS, you need to create one. For more information, see Create a Primary Zone.
Install the IONOS Cloud Cert Manager webhook
To use the IONOS Cloud Cert Manager webhook, you need to install it in your Kubernetes cluster using Helm. Run the following command to install the webhook:
Note: As a standard practice, cert-manager is deployed within the cert-manager namespace. This chart operates under the assumption of this default namespace and leverages this setting to assign the necessary privileges to the cert-manager service account, thereby enabling the creation of resources classified as "ionos-cloud." If you are deploying the cert-manager chart in a different namespace, use the certManager.namespace chart value to specify the namespace where cert-manager is deployed. For example, use --set certManager.namespace=custom_namespace.
For more information, refer to the IONOS Cloud DNS Webhook for cert-manager documentation.
Create a ClusterIssuer resource
ClusterIssuer resourceCreate a ClusterIssuer resource in your Kubernetes cluster to configure the IONOS Cloud Cert Manager webhook. Save the following YAML content to a file named clusterissuer.yaml:
Note: Replace [email protected] with your actual email address.
Apply the Certificate resource
Certificate resourceApply the Certificate resource to your Kubernetes cluster by running the following command:
Note: The certificate resource will create a certificate request and order a certificate from the ACME server. The webhook will create a DNS record of TXT type in the IONOS Cloud primary zone. Depending on the issuer, approval of the certificate request might take several minutes.
Final result
You should see the certificate details and the status indicating that the certificate has been successfully issued. The output should look similar to the following:
Conclusion
You have successfully set up and managed TLS certificates using the IONOS Cloud cert-manager widget and IONOS Cloud DNS service. This ensures that your web server is secure and your data is protected. For more information, refer to the cert-manager official documentation and the IONOS Cloud DNS documentation.
Last updated
Was this helpful?