Все, что нужно знать про Let's Encrypt, от localhost до Kubernetes
Реклама
Расширение протокола TLS (Transport Layer Security) - SNI (Server Name Indication) и бесплатные сертификаты от Let's Encrypt, на основе DV (Domain Validation), открыли возможность сделать безопасными соединения во “всем интернете”, а протокол с мультяшной аббревиатурой ACME (Automated Certificate Management Environment), позволил автоматизировать процессы управления сертификатами
Давайте на практически полезных примерах разберемся, как все это устроено
Техническое задание
Запись вебинара
-
-
-
Тэги: HAProxy, Apache, Nginx, Linux, Docker, Kubernetes, Minikube, Ingress, ACME, Certbot, cert-manager
Шаг 1. Что у нас есть, для начала
# hostnamectl hostname vps
Шаг 2. Управление сертификатами Let's Encrypt "вручную"
Шаг 3. Автоматическое управление сертификатами Let's Encrypt
vps:~# systemctl disable apache2.service --now
...
vps:~# systemctl disable nginx.service --now
Шаг 4. Управление сертификатами Let's Encrypt в Kubernetes
student@vps:~/webd-k8s$ curl -H "Host: siteN.mgtu.ru" http://192.168.49.2 -v
student@vps:~/webd-k8s$ curl -H "Host: siteN.mgtu.ru" https://192.168.49.2 -kv
#Add port 80 for demonstration how does a cert-manager work
virtual_server 195.19.40.42 443 {
lb_algo wlc
lb_kind NAT
protocol TCP
real_server 192.168.49.2 443 {}
}
$ curl http://siteN.mgtu.ru -v
$ curl https://siteN.mgtu.ru -k
student@vps:~$ kubectl -n my-ns get pods
...
cm-acme-http-solver-...
...
student@vps:~/webd-k8s$ kubectl -n my-ns get ingress -o yaml | grep acme-challenge
student@vps:~/webd-k8s$ curl http://siteN.mgtu.ru/.well-known/acme-challenge/NNNNNNNNNNNNNNNNNNNNN
student@vps:~/webd-k8s$ kubectl -n my-ns exec -ti pods/my-webd-<TAB> -- bash
ИЛИ
student@vps:~/webd-k8s$ kubectl run -ti my-debian --image=debian -- bash
:/# apt update; apt install curl
:/# curl http://siteN.mgtu.ru/.well-known/acme-challenge/NNNNNNNNNNNNNNNNNNNNN
...
frontend ft-vps
mode http
bind *:80
default_backend bk-minikube-ingress
backend bk-minikube-ingress
mode http
server minikube 192.168.49.2:80 check
$ curl https://siteN.mgtu.ru -v