Table of Contents

Все, что нужно знать про Let's Encrypt, от localhost до Kubernetes

Реклама

Техническое задание

Запись вебинара

Шаг 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