Skip to content

Enable SSL with Nginx Ingress and Cert Manager

Scott Miller edited this page Nov 11, 2021 · 6 revisions

Configure SSL

There are multiple ways to encrypt traffic with SSL and Helm/Kubernetes. The method described here uses Nginx-ingress and Lets Encrypt to automatically provision and deploy a cert.

This assumes you already have your cluster up and running. If not, run something like this

helm install first-release helpyio/helpy

Install Nginx ingress controller

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true

Set up a domain name with DNS entries to point to the cluster IP Address

Log into your DNS settings and create a subdomain record for support.yoursite.com

Configure Helpy to use the Ingress

helm upgrade first-release helpyio/helpy \
  --set ingress.enabled=true \
  --set appHostName=you.full.domain

Configure the cluster to enable SSL

helm upgrade first-release helpyio/helpy \
  --set enableSSL=true \
  --set sslEmail=your.address@hostname.com

Next install the cert-manager to provision an auto renewing cert

kubectl create namespace cert-manager
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v1.2.0 --set installCRDs=true