Cloud & DevOps calendar_today July 13, 2026 schedule 15 min read

Kubernetes Ingress & Automated Let's Encrypt SSL with Cert-Manager

Comprehensive architecture guide and production tutorial covering Kubernetes Ingress & Automated Let's Encrypt SSL with Cert-Manager with step-by-step setup, benchmarks, security hardening, and troubleshooting.

Joel Roys

Joel Roys

Lead Architect & Full-Stack Engineer, JoelX Orbit

arrow_back All Articles
Kubernetes ingress controller server rack and cert-manager automated TLS SSL issuance
Photo source: Unsplash
Manually generating SSL/TLS certificates with OpenSSL and copying CRT files into servers every year is a recipe for catastrophic production outages when someone inevitably forgets to renew a certificate before expiration. In modern Kubernetes cloud environments, SSL management is completely automated. By pairing the NGINX Ingress Controller with cert-manager and Let's Encrypt, certificates are automatically requested via the ACME protocol (HTTP-01 or DNS-01 challenges), issued in seconds, and renewed 30 days before expiration with zero human intervention. In this infrastructure guide, we deploy a production Ingress configuration on Kubernetes, configure an automated ClusterIssuer, and enforce TLS 1.3 encryption across enterprise domains.
Architecture Domain

Cloud Infrastructure: Kubernetes Ingress & SSL

Specialized engineering practices tailored for Cloud & DevOps.

Performance SLA

Zero-Downtime Automated Let's Encrypt TLS

Validated with quantitative synthetic benchmarking.

Security Model

ACME Challenge & Automated 90-Day Renewal

Defense-in-depth policies mitigating OWASP Top 10 risks.

build 1. Cloud Infrastructure: Kubernetes Ingress & SSL Prerequisites & Environment Setup

A running Kubernetes cluster (v1.26+), kubectl configured with cluster-admin access, and a registered public domain name pointing to your cluster load balancer IP.

Initialize your project workspace and install the verified production dependencies:

kubectl version --short
# Install cert-manager via Helm
helm repo add jetstack https://charts.jetstack.io && helm repo update
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set installCRDs=true

account_tree 2. Cloud Infrastructure: Kubernetes Ingress & SSL Execution Lifecycle

  1. Developer applies Kubernetes Ingress manifest with annotation: cert-manager.io/cluster-issuer: 'letsencrypt-prod'.
  2. cert-manager controller detects Ingress and generates a CertificateRequest custom resource.
  3. cert-manager contacts Let's Encrypt ACME server and sets up an HTTP-01 challenge pod.
  4. Let's Encrypt verifies domain ownership by fetching http://yourdomain.com/.well-known/acme-challenge/...
  5. Let's Encrypt signs X.509 certificate and returns it to cert-manager over encrypted channel.
  6. cert-manager saves certificate and private key into a Kubernetes Secret (tls-secret); NGINX Ingress reloads SSL in-memory.

code 3. Step-by-Step Implementation of Cloud Infrastructure: Kubernetes Ingress & SSL

1. Production Let's Encrypt ClusterIssuer Manifest (letsencrypt-prod.yaml)

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: security@joelxorbit.in
    privateKeySecretRef:
      name: letsencrypt-prod-account-key
    solvers:
      - http01:
          ingress:
            class: nginx

2. Production Kubernetes Ingress with Automated TLS Termination

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: enterprise-ingress
  namespace: production
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/proxy-body-size: "20m"
spec:
  tls:
    - hosts:
        - joelxorbit.in
        - www.joelxorbit.in
      secretName: joelxorbit-production-tls
  rules:
    - host: joelxorbit.in
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: frontend-service
                port:
                  number: 80

3. Automated Certificate Status Verification Command

# Command to check certificate issuance status
# kubectl get certificate -A
# kubectl describe certificate joelxorbit-production-tls -n production
console.log('Certificate verification command generated');

speed 4. Cloud Infrastructure: Kubernetes Ingress & SSL Performance Benchmarks & Efficiency Analysis

Optimization Metric Legacy Baseline Optimized Target Net Improvement
Certificate Renewal Outages Frequent (Expired certs) 0 (Automated 60-day renewal) Zero Downtime
Certificate Issuance Lead Time 3-5 days manual verification 45 seconds via ACME HTTP-01 Instant Issuance
Enterprise SSL Cost $250/year per commercial cert $0 (Free Let's Encrypt ACME) 100% Free
SSL Configuration Rating B (Weak ciphers) A+ (Qualys SSL Labs TLS 1.3) Maximum Security

security 5. Cloud Infrastructure: Kubernetes Ingress & SSL Enterprise Security Hardening Checklist

  • Enforce automatic HTTP to HTTPS redirection using nginx.ingress.kubernetes.io/ssl-redirect: 'true'.
  • Configure strict HTTP Strict Transport Security (HSTS) with preload in Ingress annotations.
  • Store private keys securely inside Kubernetes Secrets with RBAC restricted to the ingress controller service account.
  • Use DNS-01 challenges when requesting wildcard SSL certificates (*.yourdomain.com).

bug_report 6. Cloud Infrastructure: Kubernetes Ingress & SSL Diagnostics & Production Troubleshooting Matrix

Error / Exception Root Cause Remediation Action
Waiting for CertificateRequest: HTTP-01 challenge failed Public DNS A record does not point to Kubernetes Ingress Load Balancer public IP Update domain DNS records with your registrar and wait for global DNS propagation
ACME rate limit exceeded: too many requests for domain Submitting dozens of failed certificate requests to Let's Encrypt production endpoint Test configurations first against the staging issuer (https://acme-staging-v02.api.letsencrypt.org/directory)
Ingress class 'nginx' not found NGINX Ingress Controller not installed or using different ingressClassName Verify installed ingress controllers via 'kubectl get ingressclass'

quiz 7. Frequently Asked Questions Regarding Cloud Infrastructure: Kubernetes Ingress & SSL

What is the difference between HTTP-01 and DNS-01 ACME challenges?

HTTP-01 proves domain control by serving a temporary token at yourdomain.com/.well-known/acme-challenge. DNS-01 proves control by creating a TXT record in your DNS provider, which is required for wildcard certificates (*.domain.com).

How often does cert-manager renew certificates?

Let's Encrypt certificates are valid for 90 days. cert-manager automatically initiates renewal 30 days before expiration (on day 60), ensuring zero expiration risk.

What is the difference between an Issuer and a ClusterIssuer?

An Issuer is scoped to a single Kubernetes namespace. A ClusterIssuer is a cluster-wide resource that can issue certificates for Ingresses across all namespaces.

Cloud & DevOps Engineering Consultation

Architecting Cloud Infrastructure: Kubernetes Ingress & SSL Solutions

The engineering practice at JoelX Orbit designs and delivers custom Cloud Infrastructure: Kubernetes Ingress & SSL platforms and hardened cloud & devops architectures tailored to your business scale.

Topic Tags

#Kubernetes #DevOps #SSL #Cert-Manager #Ingress #Security
Joel Roys

Joel Roys

Author

Lead Architect & Full-Stack Engineer, JoelX Orbit

Joel Roys leads engineering at JoelX Orbit, specializing in modern full-stack web applications, cross-platform Flutter mobile architectures, distributed cloud deployments, and developer tooling.

Related Publications.

Continue exploring architectural insights and tutorials.

View All arrow_forward
Engineering Partnership

Need Custom Development for Your Organization?

From custom software architecture and enterprise CRM development to mobile apps and cloud optimization, the JoelX Orbit engineering team delivers tailored, high-performance solutions.