Завершение TLS и защита Ingress с помощью HTTPS
Обслуживайте трафик по HTTPS: настройте TLS в Ingress, храните сертификаты в Secrets и автоматизируйте их выдачу с помощью cert-manager
«Завершение TLS и защита Ingress с помощью HTTPS» — бесплатный урок Docker & Kubernetes for Developers на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & Kubernetes for Developers, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & Kubernetes for Developers содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Why TLS at the Ingress
Terminating TLS at the Ingress lets one place handle HTTPS for many backend services, so internal apps can stay plain HTTP while users get encryption.
Certificates Live in Secrets
An Ingress references a TLS certificate stored in a Kubernetes Secret of type kubernetes.io/tls, holding a tls.crt and tls.key.
kubectl create secret tls my-tls \
--cert=tls.crt --key=tls.keyAdding a tls Block to Ingress
The spec.tls section maps hostnames to the secret that secures them.
spec:
tls:
- hosts:
- app.example.com
secretName: my-tls
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80How Termination Works
The Ingress controller decrypts incoming HTTPS, then forwards plain HTTP to the backend Service inside the cluster network.
The Certificate Renewal Problem
Certificates expire. Renewing and re-uploading them by hand is error prone, which is why automation tools exist.
Introducing cert-manager
cert-manager is an add-on that watches Ingress/Certificate resources and automatically obtains and renews certificates from issuers like Let us Encrypt.
Defining a ClusterIssuer
A ClusterIssuer tells cert-manager how to get certificates cluster-wide.
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: admin@example.com
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginxAnnotating the Ingress
Add an annotation so cert-manager issues a cert and stores it in the named secret automatically.
metadata:
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prodHTTP-01 vs DNS-01
HTTP-01 proves domain ownership by serving a token over HTTP; DNS-01 proves it via a DNS TXT record and supports wildcard certificates.
Forcing HTTPS Redirects
Most controllers redirect HTTP to HTTPS by default. With NGINX you can control it via an annotation.
metadata:
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"Verifying the Certificate
Check the Certificate resource and inspect the served cert.
kubectl get certificate
openssl s_client -connect app.example.com:443Quick Check
Test what you have learned.
Recap
You learned to terminate TLS at the Ingress using a tls Secret, automate issuance and renewal with cert-manager and a ClusterIssuer, choose HTTP-01 vs DNS-01, and force HTTPS redirects.
Часто задаваемые вопросы
Урок «Завершение TLS и защита Ingress с помощью HTTPS» бесплатный?
Да — полный текст урока «Завершение TLS и защита Ingress с помощью HTTPS» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Docker & Kubernetes for Developers, подпишись на CoddyKit PRO. Курс Docker & Kubernetes for Developers содержит 4 уроков всего.
Чему я научусь в уроке «Завершение TLS и защита Ingress с помощью HTTPS»?
Обслуживайте трафик по HTTPS: настройте TLS в Ingress, храните сертификаты в Secrets и автоматизируйте их выдачу с помощью cert-manager Ты практикуешь Docker & Kubernetes for Developers с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Docker & Kubernetes for Developers?
Предыдущий опыт не требуется. Docker & Kubernetes for Developers на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Завершение TLS и защита Ingress с помощью HTTPS»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Docker & Kubernetes for Developers?
Да. Каждый урок Docker & Kubernetes for Developers включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Ingress и маршрутизация в Kubernetes
- Реализация сетевых политик
- Обнаружение сервисов и DNS в K8s
- Завершение TLS и защита Ingress с помощью HTTPS