liveBook · Manning

TLS termination

As explained in Software Security for Developers

TLS termination is the process of decrypting and handling a TLS connection at an endpoint before forwarding the resulting traffic.

TLS termination decrypts an HTTPS connection at an endpoint so the resulting request can be handled and forwarded. In Kubernetes, an ingress controller commonly acts as that front door: it checks the certificate, decrypts the request, and routes it to the application. This centralizes certificate renewal and TLS configuration instead of repeating them in every service. section 10.3

Choose the endpoint deliberately:

  • Terminate TLS at ingress for large Kubernetes systems, using controllers such as NGINX or Traefik. section 10.3
  • Recognize the trust boundary: ingress-to-application traffic may be unencrypted, or may use mutual TLS when internal encryption and authentication are required. section 10.4
  • Terminate TLS inside Spring Boot for standalone or internal applications, or when encryption must continue into the application. section 10.4
Listing 10.1 Configuring TLS in Kubernetes with NGINX ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: acme-app
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod   #1
    nginx.ingress.kubernetes.io/ssl-redirect: "true"  #2
spec:
  tls:
    - hosts:
        - app.acme.com  #3
      secretName: acme-app-tls   #4
  rules:
    - host: app.acme.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: acme-webapp
                port:
                  number: 80

A Kubernetes Ingress manifest shows certificate management, HTTPS redirection, hostname routing, and forwarding to the application service. section 10.3

How Software Security for Developers covers it

How deep it goes
Explains endpoint choice, certificate management, forwarding boundaries, and application configuration without entering protocol internals.
Examples
Uses NGINX Ingress configuration, Spring Boot TLS properties, and internal service-to-service mTLS as examples.
What it assumes
Assumes basic HTTPS and application deployment concepts while defining ingress, certificates, and termination in practical terms.
What you can do after
Operate/configure TLS termination at ingress or inside Spring Boot while choosing an appropriate internal encryption boundary.
How it connects
Connects TLS termination with HTTPS, Kubernetes, ingress controllers, certificates, Spring Boot, and mutual TLS.

Also explained in

Compare how 4 books explain TLS termination →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Software Security for Developers. The section links point to the parts of the book it draws on.